Spaces:
Runtime error
Runtime error
| import dotenv from "dotenv"; | |
| dotenv.config(); | |
| function numberFromEnv(env, key, fallback) { | |
| const value = env[key]; | |
| if (value === undefined || value === "") { | |
| return fallback; | |
| } | |
| const parsed = Number(value); | |
| return Number.isFinite(parsed) ? parsed : fallback; | |
| } | |
| export function loadConfig(env = process.env) { | |
| return { | |
| openAiApiKey: env.OPENAI_API_KEY ?? "", | |
| openAiBaseUrl: (env.OPENAI_BASE_URL ?? "https://api.openai.com/v1").replace(/\/+$/, ""), | |
| port: numberFromEnv(env, "PORT", 3000), | |
| mediaTtlSeconds: numberFromEnv(env, "MEDIA_TTL_SECONDS", 3600), | |
| requestTimeoutMs: numberFromEnv(env, "REQUEST_TIMEOUT_MS", 60000), | |
| jsonLimit: env.JSON_LIMIT ?? "50mb", | |
| maxAudioDownloadMb: numberFromEnv(env, "MAX_AUDIO_DOWNLOAD_MB", 25) | |
| }; | |
| } | |
| export function validateConfig(config) { | |
| const missing = []; | |
| if (!config.openAiApiKey) { | |
| missing.push("OPENAI_API_KEY"); | |
| } | |
| if (!config.openAiBaseUrl) { | |
| missing.push("OPENAI_BASE_URL"); | |
| } | |
| if (missing.length > 0) { | |
| throw new Error(`Missing required environment variables: ${missing.join(", ")}`); | |
| } | |
| } | |