UNPKG

navy

Version:

Quick and powerful development environments using Docker and Docker Compose

54 lines (52 loc) 2.27 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.DEFAULT_TLS_ROOT_CA_DIR = void 0; exports.getConfig = getConfig; exports.getConfigDir = getConfigDir; exports.getConfigPath = getConfigPath; exports.setConfig = setConfig; var _path = _interopRequireDefault(require("path")); var _invariant = _interopRequireDefault(require("invariant")); var _fs = _interopRequireWildcard(require("fs")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } const DEFAULT_ENVIRONMENT_NAME = 'dev'; const DEFAULT_TLS_ROOT_CA_DIR = exports.DEFAULT_TLS_ROOT_CA_DIR = `${getConfigDir()}/tls-root-ca`; const DEFAULT_CONFIG = { defaultNavy: DEFAULT_ENVIRONMENT_NAME, externalIP: null, tlsRootCaDir: DEFAULT_TLS_ROOT_CA_DIR }; let _config = null; function getConfigDir() { const home = process.env.HOME; (0, _invariant.default)(home, "NO_HOME_DIRECTORY: No home directory available"); return _path.default.join(home, '.navy'); } function getConfigPath() { const configDir = getConfigDir(); return _path.default.join(configDir, 'config.json'); } function getConfig() { if (_config) { return _config; } try { const file = _fs.default.readFileSync(getConfigPath(), 'utf8'); _config = JSON.parse(file); return _config; } catch (ex) { return DEFAULT_CONFIG; } } async function setConfig(config) { if (config == null) config = DEFAULT_CONFIG; await _fs.promises.mkdir(_path.default.dirname(getConfigPath()), { recursive: true }); await _fs.promises.writeFile(getConfigPath(), JSON.stringify(config, null, 2)); // trash cached config _config = null; }