28 lines
647 B
JavaScript
28 lines
647 B
JavaScript
|
|
import { Pool } from 'pg';
|
||
|
|
import 'dotenv/config';
|
||
|
|
|
||
|
|
const poolCreds = {
|
||
|
|
host: process.env.POSTGRES_HOST,
|
||
|
|
database: process.env.POSTGRES_DB,
|
||
|
|
port: process.env.POSTGRES_PORT,
|
||
|
|
user: process.env.POSTGRES_USER,
|
||
|
|
password: process.env.POSTGRES_PASSWORD,
|
||
|
|
ssl:
|
||
|
|
process.env.APP_ENV === 'local'
|
||
|
|
? null
|
||
|
|
: { require: true, rejectUnauthorized }
|
||
|
|
};
|
||
|
|
|
||
|
|
const pool = new Pool(poolCreds);
|
||
|
|
|
||
|
|
export const runQuery = async (query, params = []) => {
|
||
|
|
const client = await pool.connect();
|
||
|
|
|
||
|
|
try {
|
||
|
|
const pgQueryResponse = await client.query(query, params);
|
||
|
|
return pgQueryResponse?.rows || [];
|
||
|
|
} finally {
|
||
|
|
client.release();
|
||
|
|
}
|
||
|
|
}
|