TIL NOTE #020
Validate Your .env at Startup
The problem: process.env.DATABASE_URL is undefined. Your code uses it three layers deep. It fails at 3am.
The fix: Validate at startup using zod.
import { z } from "zod";
const envSchema = z.object({ DATABASE_URL: z.string().url(), REDIS_URL: z.string().url(), API_KEY: z.string().min(10), NODE_ENV: z.enum(["development", "production", "test"]).default("development")});
const env = envSchema.parse(process.env);
export default env;If DATABASE_URL is missing or invalid, the app crashes on line 1. You see the error immediately.
In your app:
import env from "./env";
const db = pgClient(env.DATABASE_URL); // Type-safe, validatedNever reach for as any on environment variables.