import type { LogLevel } from "@atbb/logger"; export interface WebConfig { port: number; appviewUrl: string; logLevel: LogLevel; /** In-memory theme cache TTL in milliseconds. Defaults to 5 minutes. */ themeCacheTtlMs: number; } export function loadConfig(): WebConfig { return { port: parseInt(process.env.WEB_PORT ?? "3001", 10), appviewUrl: process.env.APPVIEW_URL ?? "http://localhost:3000", logLevel: (process.env.LOG_LEVEL as LogLevel) ?? "info", themeCacheTtlMs: (() => { const parsed = parseInt(process.env.THEME_CACHE_TTL_MS ?? "300000", 10); return Number.isNaN(parsed) ? 300_000 : parsed; })(), }; }