import { Pool } from 'pg'; import 'dotenv/config'; // Environment variables for database configuration const PG_HOST = process.env.PG_HOST || 'localhost'; const PG_PORT = Number(process.env.PG_PORT) || 5432; const PG_USER = process.env.PG_USER || 'postgres'; const PG_PASSWORD = process.env.PG_PASSWORD || ''; const PG_DB = process.env.PG_DB || 'postgres'; // Create a connection pool const pool = new Pool({ host: PG_HOST, port: PG_PORT, user: PG_USER, password: PG_PASSWORD, database: PG_DB, }); export async function pgQuery(query: string, params: any[] = []) { try { // Get a client from the pool const client = await pool.connect(); try { // Execute the query with parameters const result = await client.query(query, params); return result.rows; // Return only the rows } finally { // Release the client back to the pool client.release(); } } catch (err) { // Log error and rethrow it console.error(`Error executing query: ${query}`, err); throw err; } }