great-scott
Version:
A Marty-like data source for postgres.
46 lines (32 loc) • 1.07 kB
JavaScript
;
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];
}
};