Files
stack/packages/db/src/client.ts
2026-03-13 02:17:18 +00:00

19 lines
589 B
TypeScript

import { drizzle, type PostgresJsDatabase } from 'drizzle-orm/postgres-js';
import postgres from 'postgres';
import * as schema from './schema.js';
import { DEFAULT_DATABASE_URL } from './defaults.js';
export type Db = PostgresJsDatabase<typeof schema>;
export interface DbHandle {
db: Db;
close: () => Promise<void>;
}
export function createDb(url?: string): DbHandle {
const connectionString = url ?? process.env['DATABASE_URL'] ?? DEFAULT_DATABASE_URL;
const sql = postgres(connectionString);
const db = drizzle(sql, { schema });
return { db, close: () => sql.end() };
}