UNPKG

@opengis/fastify-table

Version:

core-plugins

46 lines (45 loc) 1.97 kB
import pool from "./pool.js"; import init from "./init.js"; import config from "../../../../config.js"; import dblist from "../../../../dblist.js"; import pgClients from "../pgClients.js"; import getDBParams from "./getDBParams.js"; function getPG(param = {}) { // console.log("config.pg", config.pg, process.env); // ! process.env.VITEST always in uppercase, debug to properly test via npx vitest run if (!config.pg) return null; const dbListParams = dblist.find((el) => el.key === param?.key) || dblist.find((el) => el.database === (param?.db || param?.database || param) && el.port === param?.port); const { user, password, host, port, db, database, name: origin, statement_timeout: timeout, // explicit connectionTimeoutMillis: connectionTimeout, } = dbListParams ?? (typeof param === "string" ? getDBParams(param) : param || {}); const name = origin || db || database || (typeof param === "string" ? param : null) || "client"; if (pgClients[name]) return pgClients[name]; const dbConfig = { user: user || config.pg?.user || "postgres", password: password || config.pg?.password || "postgres", host: host || config.pg?.host, port: port || config.pg?.port, database: db || database || config.pg?.db || config.pg?.database, statement_timeout: timeout || config.pg?.statement_timeout || 10000, connectionTimeoutMillis: connectionTimeout || config.pg?.connectionTimeoutMillis || 5000, }; if (!dbConfig.database) { return null; } pgClients[name] = pool(dbConfig); pgClients[name].init = () => init(pgClients[name]); // for compatibility // force init init(pgClients[name]).catch((err) => console.warn("⚠️ pg client init error", host, port, dbConfig.database)); return pgClients[name]; } if (config.pg) { getPG({ name: "client" }); } export default getPG;