UNPKG

great-scott

Version:

A Marty-like data source for postgres.

46 lines (32 loc) 1.07 kB
"use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var Promise = _interopRequire(require("bluebird")); var pg = _interopRequire(require("pg")); var createPool = require("generic-pool").Pool; Promise.promisifyAll(pg.Client.prototype); var pools = {}; module.exports = { get: function get(connectionString, config) { config = config || {}; if (!pools[connectionString]) { var pool = createPool({ name: connectionString, create: function create(callback) { var client = new pg.Client(connectionString); client.on("connect", function (err) { callback(err, client); }); client.connect(); }, destroy: function destroy(client) { client.end(); }, max: config.max || 10, min: config.min || 2, idleTimeoutMillis: config.idleTimeoutMillis || 30000 }); Promise.promisifyAll(pool); pools[connectionString] = pool; } return pools[connectionString]; } };