/** * Centralized env parsing — validate at startup, fail fast on bad config. * Other modules read from the frozen `config` object instead of process.env * so misconfiguration shows up here, not deep in a request handler. */ import { parseStalenessHours } from "../../lib/env"; function parsePort(raw: string | undefined, fallback: number): number { if (!raw) return fallback; const n = parseInt(raw, 10); if (!Number.isFinite(n) || n < 1 || n > 65535) { throw new Error(`Invalid PORT=${raw}: must be an integer in 1..65535`); } return n; } export const config = Object.freeze({ port: parsePort(process.env.PORT, 3001), parkHoursStalenessHours: parseStalenessHours(process.env.PARK_HOURS_STALENESS_HOURS, 72), nodeEnv: process.env.NODE_ENV ?? "development", rateLimitPerMin: parsePort(process.env.RATE_LIMIT_PER_MIN, 60), }); export type Config = typeof config;