Files
sf-sim/packages/shared/infrastructure/PgClient.ts

30 lines
672 B
TypeScript

import { Pool, QueryResult, QueryResultRow } from "pg";
export class PgClient {
private pgPool: Pool;
constructor(args: {
pool: Pool
}) {
this.pgPool = args.pool
}
public connect() {
return this.pgPool.connect()
}
/**
* Wrapper para ejecutar consultas con tipado fuerte.
* T es el formato de la respusta.
* @param text - La consulta SQL (ej. 'SELECT * FROM users WHERE id = $1')
* @param params - Los valores para los placeholders $1, $2, etc.
*/
public async query<T extends QueryResultRow = any>(
text: string,
params?: any[]
): Promise<QueryResult<T>> {
return await this.pgPool.query(text, params);
};
}