UNPKG

@opengis/fastify-table

Version:

core-plugins

43 lines (32 loc) 1.41 kB
import pg from 'pg'; const { types } = pg; types.setTypeParser(1082, (stringValue) => stringValue); types.setTypeParser(1114, (stringValue) => stringValue); import config from '../../../../config.js'; import dblist from '../../../../dblist.js'; import pgClients from '../pgClients.js'; import init from './init.js'; import getDBParams from './getDBParams.js'; async function getPGAsync(param) { if (!config.pg) return null; const dbListParams = dblist.find(el => el.key === param?.key) || dblist.find(el => el.database === (param?.db || param?.database || param)); const { user, password, host, port, db, database, name: origin, } = dbListParams ?? (typeof param === 'string' ? getDBParams(param) : param || {}); const name = origin || db || database || param || 'client'; if (pgClients[name]?.tlist) 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: config.pg?.statement_timeout || 10000, }; if (!dbConfig.database) { return null; } pgClients[name] = new pg.Pool(dbConfig); await init(pgClients[name]); return pgClients[name]; } export default getPGAsync;