use environment variables from cloudflare's environment

This commit is contained in:
Avraham Sakal
2025-09-16 09:09:33 -04:00
parent c98342e886
commit 81338b8831
11 changed files with 323 additions and 268 deletions
+23 -1
View File
@@ -1,7 +1,14 @@
import { appRouter } from "../trpc/router";
// TODO: stop using universal-middleware and directly integrate server middlewares instead and/or use vike-server https://vike.dev/server. (Bati generates boilerplates that use universal-middleware https://github.com/magne4000/universal-middleware to make Bati's internal logic easier. This is temporary and will be removed soon.)
import type { Get, UniversalHandler } from "@universal-middleware/core";
import {
type Get,
type UniversalHandler,
env as getEnv,
} from "@universal-middleware/core";
import { fetchRequestHandler } from "@trpc/server/adapters/fetch";
import { getDb, getDbClient } from "../database/postgres";
import { getOpenrouter } from "../pages/chat/provider";
import { env as processEnv } from "./env.js";
export const trpcHandler = ((endpoint) => (request, context, runtime) => {
return fetchRequestHandler({
@@ -9,11 +16,26 @@ export const trpcHandler = ((endpoint) => (request, context, runtime) => {
req: request,
router: appRouter,
createContext({ req, resHeaders }) {
const env = getEnv(runtime);
const dbClient = getDbClient(
(env.POSTGRES_CONNECTION_STRING ||
processEnv.POSTGRES_CONNECTION_STRING) as string
);
const db = getDb(
(env.POSTGRES_CONNECTION_STRING ||
processEnv.POSTGRES_CONNECTION_STRING) as string
);
const openrouter = getOpenrouter(
(env.OPENROUTER_API_KEY || processEnv.OPENROUTER_API_KEY) as string
);
return {
...context,
...runtime,
req,
resHeaders,
dbClient,
db,
openrouter,
};
},
allowMethodOverride: true,