const { Pool } = require('pg'); require('dotenv').config(); const pool = new Pool({ host: process.env.PG_HOST, port: process.env.PG_PORT, user: process.env.PG_USER, password: process.env.PG_PASS, database: process.env.PG_DB, options: '-c search_path=data,public', max: 10, idleTimeoutMillis: 30000, }); pool.query('SELECT 1') .then(() => console.log('PostgreSQL connection OK')) .catch(err => { console.error('PostgreSQL connection FAILED'); console.error(err); const url = process.env.ERROR_LOG_API_URL || 'https://error.xtransit.testinstance.nl/error_log'; const controller = new AbortController(); const timer = setTimeout(() => controller.abort(), 5000); fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json', 'x-internal-api-key': process.env.INTERNAL_API_KEY || '', }, body: JSON.stringify({ service: 'error_log_api', partofservice: 'startup: db connection', error: err.stack || err.message || String(err), }), signal: controller.signal, }).catch(() => {}) .finally(() => { clearTimeout(timer); process.exit(1); }); }); module.exports = { query: (text, params) => pool.query(text, params), pool, };