UNPKG

@jcoreio/get-pg-config

Version:

apply default postgres connection config from dotfiles and .pgpass

104 lines (103 loc) 4.39 kB
"use strict"; 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); }