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