← back to Small Business Builder
src/lib/db.js
34 lines
import 'dotenv/config';
import pg from 'pg';
export const pool = new pg.Pool({ connectionString: process.env.DATABASE_URL });
export async function query(text, params) {
return pool.query(text, params);
}
export async function one(text, params) {
const { rows } = await pool.query(text, params);
return rows[0] || null;
}
export async function many(text, params) {
const { rows } = await pool.query(text, params);
return rows;
}
export async function tx(fn) {
const client = await pool.connect();
try {
await client.query('BEGIN');
const result = await fn(client);
await client.query('COMMIT');
return result;
} catch (err) {
await client.query('ROLLBACK');
throw err;
} finally {
client.release();
}
}