31 lines
803 B
TypeScript
31 lines
803 B
TypeScript
import type { NextRequest } from "next/server";
|
|
import { getAuth } from "@clerk/nextjs/server";
|
|
import { fetchRequestHandler } from "@trpc/server/adapters/fetch";
|
|
|
|
import { createTRPCContext } from "@acme/api";
|
|
import { edgeRouter } from "@acme/api/edge";
|
|
|
|
export const runtime = "edge";
|
|
|
|
const createContext = async (req: NextRequest) => {
|
|
return createTRPCContext({
|
|
headers: req.headers,
|
|
auth: getAuth(req),
|
|
req,
|
|
});
|
|
};
|
|
|
|
const handler = (req: NextRequest) =>
|
|
fetchRequestHandler({
|
|
endpoint: "/api/trpc/edge",
|
|
router: edgeRouter,
|
|
req: req,
|
|
createContext: () => createContext(req),
|
|
onError: ({ error, path }) => {
|
|
console.log("Error in tRPC handler (edge) on path", path);
|
|
console.error(error);
|
|
},
|
|
});
|
|
|
|
export { handler as GET, handler as POST };
|