31 lines
748 B
TypeScript
31 lines
748 B
TypeScript
import { createFileRoute } from "@tanstack/react-router";
|
|
import { createApp } from "~/server/app";
|
|
import { config } from "~/server/core/config";
|
|
|
|
const app = createApp();
|
|
|
|
type NodeRuntimeRequest = Request & {
|
|
runtime?: {
|
|
node?: {
|
|
res?: { setTimeout: (timeoutMs: number) => void };
|
|
};
|
|
};
|
|
};
|
|
|
|
export const prepareApiRequest = (request: Request, timeoutMs: number) => {
|
|
const nodeRequest = request as NodeRuntimeRequest;
|
|
nodeRequest.runtime?.node?.res?.setTimeout(timeoutMs);
|
|
|
|
return request.clone();
|
|
};
|
|
|
|
const handle = ({ request }: { request: Request }) =>
|
|
app.fetch(prepareApiRequest(request, config.serverIdleTimeout * 1000));
|
|
|
|
export const Route = createFileRoute("/api/$")({
|
|
server: {
|
|
handlers: {
|
|
ANY: handle,
|
|
},
|
|
},
|
|
});
|