import * as config from '@/config'; import { Pool } from 'pg'; import logger from './logger'; if (!config.DATABASE_URL) { throw new Error('DATABASE_URL environment variable is required'); } const pool = new Pool({ connectionString: config.DATABASE_URL, max: 20, idleTimeoutMillis: 30000, connectionTimeoutMillis: 2000, maxUses: 7500, }); pool.on('error', (err) => { logger.error('Postgres Pool Error:', err); }); pool.on('connect', () => { logger.debug('New database connection established'); }); pool.on('remove', () => { logger.debug('Database connection removed from pool'); }); process.on('SIGINT', async () => { logger.info('Closing database pool...'); await pool.end(); process.exit(0); }); process.on('SIGTERM', async () => { logger.info('Closing database pool...'); await pool.end(); process.exit(0); }); export default pool;