// Created on savesnippets.com ยท https://savesnippets.com/J2nHslOfHZ0vCc type EnvSchema = Record; export function loadEnv(schema: S): { [K in keyof S]: string } { const out = {} as { [K in keyof S]: string }; const missing: string[] = []; for (const key in schema) { const v = process.env[key] ?? schema[key]!.default; if (v === undefined) { if (schema[key]!.required ?? true) missing.push(key); } else { out[key] = v; } } if (missing.length) { console.error('Missing required env vars:', missing.join(', ')); process.exit(1); } return out; } export const env = loadEnv({ DATABASE_URL: {}, STRIPE_SECRET: {}, PORT: { default: '3000' }, DEBUG: { default: 'false', required: false }, });