if (process.env.NODE_ENV !== "test") require("server-only"); import pg from "pg"; const { Pool } = pg; declare global { // eslint-disable-next-line no-var var __fiddyPool: pg.Pool | undefined; } export default function getPool() { if (!process.env.DATABASE_URL) throw new Error("DATABASE_URL is required"); const dbName = (() => { try { const url = new URL(process.env.DATABASE_URL!); const name = url.pathname.replace(/^\/+/, ""); return name ? decodeURIComponent(name) : ""; } catch { return ""; } })(); const allowedRaw = process.env.ALLOWED_DB_NAMES; const allowed = allowedRaw ? allowedRaw .split(",") .map(value => value.trim().toLowerCase()) .filter(Boolean) : (process.env.NODE_ENV === "test" && dbName ? [dbName.toLowerCase()] : []); if (!allowed.length) throw new Error("ALLOWED_DB_NAMES must include at least one database name"); if (!dbName) throw new Error("DATABASE_URL must include a database name"); if (!allowed.includes(dbName.toLowerCase())) throw new Error(`DATABASE_URL must target an allowed database. Found "${dbName}"`); if (!globalThis.__fiddyPool) { globalThis.__fiddyPool = new Pool({ connectionString: process.env.DATABASE_URL, ssl: process.env.DATABASE_SSL === "false" ? false : { rejectUnauthorized: false }, allowExitOnIdle: process.env.NODE_ENV === "test" }); } return globalThis.__fiddyPool; }