23 lines
766 B
TypeScript
23 lines
766 B
TypeScript
import path from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
import dotenv from "dotenv";
|
|
import { z } from "zod";
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
dotenv.config({ path: path.resolve(__dirname, "../.env") });
|
|
dotenv.config();
|
|
|
|
const envSchema = z.object({
|
|
PORT: z.coerce.number().default(3000),
|
|
SUPABASE_URL: z.string().url().optional(),
|
|
SUPABASE_SERVICE_ROLE_KEY: z.string().optional(),
|
|
REVENUECAT_WEBHOOK_SECRET: z.string().optional(),
|
|
ROOT_DOMAIN: z.string().default("menul.io"),
|
|
PUBLIC_WEB_URL: z.string().default(process.env.PUBLIC_WEB_URL ?? "http://localhost:3000"),
|
|
GEMINI_API_KEY: z.string().optional(),
|
|
OPENAI_API_KEY: z.string().optional(),
|
|
});
|
|
|
|
export const env = envSchema.parse(process.env);
|
|
|