30 lines
810 B
TypeScript
30 lines
810 B
TypeScript
import { Pool } from "pg";
|
|
|
|
// Singleton database connection pool
|
|
// Uses environment variables for configuration
|
|
|
|
const pool = new Pool({
|
|
host: process.env.DB_HOST || "127.0.0.1",
|
|
port: parseInt(process.env.DB_PORT || "5432"),
|
|
user: process.env.DB_USER || "myuser",
|
|
password: process.env.DB_PASSWORD || "mypassword",
|
|
database: process.env.DB_DATABASE || "mydb",
|
|
});
|
|
|
|
export default pool;
|
|
|
|
// Helper function for queries
|
|
export async function query<T>(text: string, params?: unknown[]): Promise<T[]> {
|
|
const result = await pool.query(text, params);
|
|
return result.rows as T[];
|
|
}
|
|
|
|
// Helper function for single row
|
|
export async function queryOne<T>(
|
|
text: string,
|
|
params?: unknown[]
|
|
): Promise<T | null> {
|
|
const result = await pool.query(text, params);
|
|
return result.rows[0] as T | null;
|
|
}
|