diff --git a/apps/api/api/index.ts b/apps/api/api/index.ts new file mode 100644 index 0000000..f42d0bf --- /dev/null +++ b/apps/api/api/index.ts @@ -0,0 +1,16 @@ +import { buildServer } from "../src/app.js"; +import type { IncomingMessage, ServerResponse } from "node:http"; + +const server = buildServer({ secureCookies: true }); +let ready: Promise | undefined; + +async function serverlessHandler( + request: IncomingMessage, + response: ServerResponse, +) { + ready ??= server.ready(); + await ready; + server.server.emit("request", request, response); +} + +export default serverlessHandler; diff --git a/apps/api/vercel.json b/apps/api/vercel.json new file mode 100644 index 0000000..e02289e --- /dev/null +++ b/apps/api/vercel.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://openapi.vercel.sh/vercel.json", + "rewrites": [{ "source": "/(.*)", "destination": "/api/index" }], + "functions": { + "api/index.ts": { "maxDuration": 30 } + } +}