20 lines
694 B
JavaScript
20 lines
694 B
JavaScript
import pg from 'pg';
|
|
|
|
const { Pool } = pg;
|
|
|
|
export function createPool(envPrefix = 'DB', overrides = {}) {
|
|
const get = (key) => process.env[`${envPrefix}_${key}`];
|
|
|
|
return new Pool({
|
|
host: overrides.host ?? get('HOST'),
|
|
user: overrides.user ?? get('USER'),
|
|
password: overrides.password ?? get('PASSWORD'),
|
|
database: overrides.database ?? get('NAME'),
|
|
port: overrides.port ?? (Number(get('PORT')) || 5432),
|
|
ssl: (overrides.ssl ?? get('SSL')) === 'true' ? { rejectUnauthorized: false } : false,
|
|
max: overrides.max ?? 20,
|
|
idleTimeoutMillis: overrides.idleTimeoutMillis ?? 30_000,
|
|
connectionTimeoutMillis: overrides.connectionTimeoutMillis ?? 5_000,
|
|
});
|
|
}
|