import * as dotenv from "@dotenvx/dotenvx"; import { z } from "zod"; dotenv.config(); // Environment variable validation const envSchema = z.object({ APP_VERSION: z.string().default("1.0.0"), HOSTNAME: z.string().optional(), PORT: z.string().default("3000"), API_BASE_URL: z.string().url("API_BASE_URL must be a valid URL"), // CORS configuration CORS_ALLOWED_ORIGINS: z.string().default(""), // Live running location LIVE_BASE_PATH: z.string().default("/live"), // Compression options COMPRESSION_LEVEL: z.string().default("6").transform(Number), COMPRESSION_THRESHOLD: z.string().default("5000").transform(Number), // secret LIVE_SERVER_SECRET_KEY: z.string(), // Redis configuration REDIS_HOST: z.string().optional(), REDIS_PORT: z.string().default("6379").transform(Number), REDIS_URL: z.string().optional(), }); const validateEnv = () => { const result = envSchema.safeParse(process.env); if (!result.success) { console.error("❌ Invalid environment variables:", JSON.stringify(result.error.format(), null, 4)); process.exit(1); } return result.data; }; export const env = validateEnv();