@jcoreio/get-pg-config
Version:
apply default postgres connection config from dotfiles and .pgpass
104 lines (103 loc) • 4.39 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getPgConfig = getPgConfig;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _cosmiconfig = require("cosmiconfig");
var _pg = require("pg");
var _pgpass = _interopRequireDefault(require("pgpass"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // @ts-expect-error not typed
function getPgConfig(_x) {
return _getPgConfig.apply(this, arguments);
}
function _getPgConfig() {
_getPgConfig = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(given) {
var _yield$cosmiconfig$se;
var defaults, base, key, _Client, user, database, password, port, host, ssl, defaulted, result;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return (0, _cosmiconfig.cosmiconfig)('get-pg-config').search();
case 2:
_context.t3 = _yield$cosmiconfig$se = _context.sent;
_context.t2 = _context.t3 === null;
if (_context.t2) {
_context.next = 6;
break;
}
_context.t2 = _yield$cosmiconfig$se === void 0;
case 6:
_context.t1 = _context.t2;
if (_context.t1) {
_context.next = 9;
break;
}
_context.t1 = (_yield$cosmiconfig$se = _yield$cosmiconfig$se.config) === null || _yield$cosmiconfig$se === void 0;
case 9:
if (!_context.t1) {
_context.next = 13;
break;
}
_context.t4 = void 0;
_context.next = 14;
break;
case 13:
_context.t4 = _yield$cosmiconfig$se.defaults;
case 14:
_context.t0 = _context.t4;
if (_context.t0) {
_context.next = 17;
break;
}
_context.t0 = {};
case 17:
defaults = _context.t0;
base = _objectSpread({}, given);
if (defaults) {
for (key in defaults) {
if (defaults[key] != null && base[key] == null) {
;
base[key] = defaults[key];
}
}
}
// const defaulted = new ConnectionParameters(base)
_Client = new _pg.Client(base), user = _Client.user, database = _Client.database, password = _Client.password, port = _Client.port, host = _Client.host, ssl = _Client.ssl;
defaulted = {
user: user,
database: database,
password: password,
port: port,
host: host,
ssl: ssl
};
if (base.user) defaulted.user = base.user;
result = _objectSpread(_objectSpread({}, defaulted), {}, {
password: defaulted.password
});
if (result.password) {
_context.next = 28;
break;
}
_context.next = 27;
return new Promise(function (resolve) {
return (0, _pgpass["default"])(result, resolve);
});
case 27:
result.password = _context.sent;
case 28:
return _context.abrupt("return", result);
case 29:
case "end":
return _context.stop();
}
}, _callee);
}));
return _getPgConfig.apply(this, arguments);
}