24 lines
527 B
TypeScript
24 lines
527 B
TypeScript
import pg from 'pg';
|
|
import { requireDatabaseUrl } from '../config/env.js';
|
|
|
|
let pool: pg.Pool | undefined;
|
|
|
|
export function getPool(): pg.Pool {
|
|
pool ??= new pg.Pool({
|
|
connectionString: requireDatabaseUrl(),
|
|
});
|
|
return pool;
|
|
}
|
|
|
|
export async function query<T extends pg.QueryResultRow = pg.QueryResultRow>(
|
|
text: string,
|
|
params?: unknown[],
|
|
): Promise<pg.QueryResult<T>> {
|
|
return getPool().query<T>(text, params);
|
|
}
|
|
|
|
export async function closePool(): Promise<void> {
|
|
await pool?.end();
|
|
pool = undefined;
|
|
}
|