import pg from "pg"; import { env } from "$env/dynamic/private"; import type { Handle } from "@sveltejs/kit"; const pool = new pg.Pool({ database: env.POSTGRES_DB || "postgres", user: env.POSTGRES_USERNAME || "postgres", host: env.POSTGRES_HOST || "localhost", port: Number(env.POSTGRES_PORT || 5432), }); // Prevent errors in idle clients from terminating Node process. // See: https://node-postgres.com/features/pooling // See: https://nodejs.org/api/events.html#error-events pool.on("error", (err, client) => { console.error("Database error: ", err, client); }); export const dbHandle = (async ({ event, resolve }) => { const dbClient = await pool.connect(); event.locals.dbClient = dbClient; try { return await resolve(event); } finally { dbClient.release(); } }) satisfies Handle;