mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-10-02 17:54:22 +10:00
32 lines
1019 B
TypeScript
32 lines
1019 B
TypeScript
import { onError } from "@orpc/server";
|
|
import { RPCHandler } from "@orpc/server/fetch";
|
|
import { BatchHandlerPlugin, RequestHeadersPlugin, StrictGetMethodPlugin } from "@orpc/server/plugins";
|
|
import router from "@reactive-resume/api/routers";
|
|
import { mergeResponseHeaders } from "../http/headers";
|
|
import { getRequestLocale } from "./locale";
|
|
|
|
const rpcHandler = new RPCHandler(router, {
|
|
plugins: [new BatchHandlerPlugin(), new RequestHeadersPlugin(), new StrictGetMethodPlugin()],
|
|
interceptors: [
|
|
onError((error) => {
|
|
console.error("[oRPC Server]", error);
|
|
}),
|
|
],
|
|
});
|
|
|
|
export async function handleRpc(request: Request, trustedClient: string) {
|
|
const resHeaders = new Headers();
|
|
const { response } = await rpcHandler.handle(request, {
|
|
prefix: "/api/rpc",
|
|
context: {
|
|
locale: getRequestLocale(request),
|
|
reqHeaders: request.headers,
|
|
resHeaders,
|
|
trustedClient,
|
|
},
|
|
});
|
|
|
|
if (!response) return new Response("NOT_FOUND", { status: 404 });
|
|
return mergeResponseHeaders(response, resHeaders);
|
|
}
|