import { dirname, resolve } from "node:path"; import { fileURLToPath } from "node:url"; import { createEnv } from "@t3-oss/env-core"; import { config } from "dotenv"; import { z } from "zod"; // Only load .env file in development (not in Cloudflare Workers) if (process.env.NODE_ENV !== "production") { const __dirname = dirname(fileURLToPath(import.meta.url)); config({ path: resolve(__dirname, "../.env") }); } export const env = createEnv({ server: { DATABASE_URL: z.string().min(1), BETTER_AUTH_SECRET: z.string().min(32), BETTER_AUTH_URL: z.url(), CORS_ORIGIN: z.url(), SMTP_HOST: z.string().min(1).optional(), SMTP_PORT: z.coerce.number().default(587), SMTP_USER: z.string().min(1).optional(), SMTP_PASS: z.string().min(1).optional(), SMTP_FROM: z.string().min(1).optional(), NODE_ENV: z .enum(["development", "production", "test"]) .default("development"), }, runtimeEnv: process.env, emptyStringAsUndefined: true, });