From be486ede2006fce0b4c29b1601bfc7125806c5c4 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Tue, 30 Apr 2024 17:35:07 -0500 Subject: [PATCH] Switch to pooled pg connections --- src/services/postgres.ts | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/services/postgres.ts b/src/services/postgres.ts index 5e5df419..ece0ce8d 100644 --- a/src/services/postgres.ts +++ b/src/services/postgres.ts @@ -1,4 +1,9 @@ -import { Client, QueryResultRow } from 'pg'; +import { Pool, QueryResult, QueryResultRow } from 'pg'; + +const pool = new Pool({ + connectionString: process.env.POSTGRES_URL, + ssl: true, +}); export type Primitive = string | number | boolean | undefined | null; @@ -6,13 +11,15 @@ export const directQuery = async ( queryString: string, values: Primitive[], ) => { - const client = new Client({ - connectionString: process.env.POSTGRES_URL, - ssl: true, - }); - await client.connect(); - const response = await client.query(queryString, values); - await client.end(); + const client = await pool.connect(); + let response: QueryResult; + try { + response = await client.query(queryString, values); + } catch (error) { + throw error; + } finally { + client.release(); + } return response; };