Files
red/teressa-copeland-homes/src/lib/db/index.ts

25 lines
702 B
TypeScript
Raw Normal View History

import { drizzle } from "drizzle-orm/postgres-js";
import postgres from "postgres";
import * as schema from "./schema";
type DrizzleDb = ReturnType<typeof createDb>;
function createDb() {
const url = process.env.DATABASE_URL;
if (!url) {
throw new Error("DATABASE_URL environment variable is not set");
}
const client = postgres(url, { max: 5 });
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<string | symbol, unknown>)[prop];
},
});