/** * Configuración de conexión a PostgreSQL * * FASE 1: Infraestructura Base * * IMPORTANTE: Usar variables de entorno para credenciales */ import pg from 'pg'; import dotenv from 'dotenv'; dotenv.config(); const { Pool } = pg; /** * Pool de conexiones a PostgreSQL */ export const pool = new Pool({ host: process.env.DB_HOST || 'localhost', port: parseInt(process.env.DB_PORT || '5432', 10), database: process.env.DB_NAME || 'emerges_tes', user: process.env.DB_USER || 'postgres', password: process.env.DB_PASSWORD || '', max: 20, // Máximo de conexiones en el pool idleTimeoutMillis: 30000, connectionTimeoutMillis: 2000, }); /** * Test de conexión */ export async function testConnection() { try { const result = await pool.query('SELECT NOW()'); console.log('✅ Conexión a PostgreSQL exitosa:', result.rows[0].now); return true; } catch (error) { const errorMessage = error instanceof Error ? error.message : 'Unknown error'; console.error('❌ Error conectando a PostgreSQL:', errorMessage); return false; } } /** * Función helper para ejecutar queries * Envuelve pool.query para mantener compatibilidad */ export async function query(text, params) { return await pool.query(text, params); } /** * Cerrar pool de conexiones */ export async function closePool() { await pool.end(); } //# sourceMappingURL=database.js.map