import pg from "pg"; /* Eén pool voor de hele server; DATABASE_URL bepaalt waar we heen gaan */ export const pool = new pg.Pool({ connectionString: process.env.DATABASE_URL ?? "postgres://postgres@localhost:5432/liefdesbrieven", }); /* pg geeft `date`-kolommen standaard als JS Date terug; wij willen ISO 'YYYY-MM-DD' */ pg.types.setTypeParser(pg.types.builtins.DATE, (v) => v); export const query = (text, params) => pool.query(text, params); /* * Meerdere queries als één geheel, op dezelfde verbinding (een brief mét foto: allebei of geen van * beide). `fn` krijgt een query-functie die op die verbinding werkt — gebruik binnen fn dus die, niet * de query() hierboven. */ export async function transaction(fn) { const client = await pool.connect(); try { await client.query("begin"); const result = await fn((text, params) => client.query(text, params)); await client.query("commit"); return result; } catch (err) { await client.query("rollback").catch(() => {}); throw err; } finally { client.release(); } }