import { drizzle } from "drizzle-orm/postgres-js"; import postgres from "postgres"; import * as schema from "./schema"; type DrizzleDb = ReturnType; function createDb() { const url = process.env.DATABASE_URL; if (!url) { throw new Error("DATABASE_URL environment variable is not set"); } const client = postgres(url); return drizzle({ client, schema }); } // Lazy singleton — created on first use, not at module load time let _db: DrizzleDb | undefined; export const db = new Proxy({} as DrizzleDb, { get(_target, prop: string | symbol) { if (!_db) _db = createDb(); return (_db as unknown as Record)[prop]; }, });