libpiggy
Version:
Use a PostgreSQL database like a JSON document store.
56 lines (41 loc) • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _fp = require('lodash/fp');
var _pgConnectionString = require('pg-connection-string');
var _pgConnectionString2 = _interopRequireDefault(_pgConnectionString);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
let pg;
try {
require('pg-native');
pg = require('pg').native;
} catch (e) {
pg = require('pg');
}
const createPool = (() => {
var _ref = (0, _asyncToGenerator3.default)(function* (options, globals) {
try {
const {
url: connectionUrl,
connectionName,
connection: connectionOptions
} = options;
const { openPools } = globals.state;
if (!openPools[connectionName]) {
const urlConfig = _pgConnectionString2.default.parse(connectionUrl);
const poolConfig = (0, _fp.defaultsDeep)(urlConfig, connectionOptions);
openPools[connectionName] = new pg.Pool(poolConfig);
}
return openPools[connectionName];
} catch (error) {
throw error;
}
});
return function createPool(_x, _x2) {
return _ref.apply(this, arguments);
};
})();
exports.default = createPool;