* fix(deps): update tanstack-query monorepo to ^5.21.2 * fix(deps): update tanstack-query monorepo * fix: type issue with transformer * fix: issues with next-auth, updated to next canary * chore: fix type issue in trpc route * chore: fix formatting --------- Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { fetchRequestHandler } from "@trpc/server/adapters/fetch";
|
|
|
|
import { appRouter, createTRPCContext } from "@homarr/api";
|
|
import { auth } from "@homarr/auth";
|
|
|
|
/**
|
|
* Configure basic CORS headers
|
|
* You should extend this to match your needs
|
|
*/
|
|
function setCorsHeaders(res: Response) {
|
|
res.headers.set("Access-Control-Allow-Origin", "*");
|
|
res.headers.set("Access-Control-Request-Method", "*");
|
|
res.headers.set("Access-Control-Allow-Methods", "OPTIONS, GET, POST");
|
|
res.headers.set("Access-Control-Allow-Headers", "*");
|
|
}
|
|
|
|
export function OPTIONS() {
|
|
const response = new Response(null, {
|
|
status: 204,
|
|
});
|
|
setCorsHeaders(response);
|
|
return response;
|
|
}
|
|
|
|
const handler = auth(async (req) => {
|
|
const response = await fetchRequestHandler({
|
|
endpoint: "/api/trpc",
|
|
router: appRouter,
|
|
req,
|
|
createContext: () =>
|
|
createTRPCContext({ session: req.auth, headers: req.headers }),
|
|
onError({ error, path }) {
|
|
console.error(`>>> tRPC Error on '${path}'`, error);
|
|
},
|
|
});
|
|
|
|
setCorsHeaders(response);
|
|
return response;
|
|
});
|
|
|
|
export { handler as GET, handler as POST };
|