pool.ts 688 B

12345678910111213141516171819202122
  1. import { Pool } from 'pg';
  2. import type { AppConfig } from '../config/env.js';
  3. export function createDatabasePool(
  4. config: AppConfig,
  5. options: { connectionString?: string; applicationName?: string } = {},
  6. ): Pool {
  7. const pool = new Pool({
  8. connectionString: options.connectionString ?? config.database.url,
  9. max: config.database.poolMax,
  10. idleTimeoutMillis: config.database.idleTimeoutMs,
  11. connectionTimeoutMillis: 5_000,
  12. statement_timeout: config.database.statementTimeoutMs,
  13. application_name: options.applicationName ?? 'saas-voc-server',
  14. });
  15. pool.on('error', (error) => {
  16. console.error('[database] idle client error', error);
  17. });
  18. return pool;
  19. }