UNPKG

hapijs-node-postgres

Version:
53 lines (37 loc) 1.08 kB
'use strict'; const Hoek = require('hoek'); const { Pool } = require('pg'); const DEFAULTS = { connectionString: process.env.POSTGRES_URL, attach: 'onPreHandler', detach: 'tail' }; exports.register = function (server, options, next) { const config = Hoek.applyToDefaults(DEFAULTS, options); const pgClient = new Pool(config.connectionString); server.expose('connect', pgClient.connect.bind(null, config.connectionString)); server.ext(config.attach, (request, reply) => { pgClient.connect(config.connectionString, (err, client, done) => { if (err) { reply(err); return; } request.pg = { client, done, kill: false }; reply.continue(); }); }); server.on(config.detach, (request, err) => { if (request.pg) { request.pg.done(); } pgClient.done(); }); next(); }; exports.register.attributes = { pkg: require('./package.json') };