| 12345678910111213141516171819202122 |
- import { Pool } from 'pg';
- import type { AppConfig } from '../config/env.js';
- export function createDatabasePool(
- config: AppConfig,
- options: { connectionString?: string; applicationName?: string } = {},
- ): Pool {
- const pool = new Pool({
- connectionString: options.connectionString ?? config.database.url,
- max: config.database.poolMax,
- idleTimeoutMillis: config.database.idleTimeoutMs,
- connectionTimeoutMillis: 5_000,
- statement_timeout: config.database.statementTimeoutMs,
- application_name: options.applicationName ?? 'saas-voc-server',
- });
- pool.on('error', (error) => {
- console.error('[database] idle client error', error);
- });
- return pool;
- }
|