JezK
Edit File: base-registry.js
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; function _regenerator() { var data = _interopRequireDefault(require("@babel/runtime/regenerator")); _regenerator = function _regenerator() { return data; }; return data; } function _asyncToGenerator2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); _asyncToGenerator2 = function _asyncToGenerator2() { return data; }; return data; } function _classCallCheck2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); _classCallCheck2 = function _classCallCheck2() { return data; }; return data; } function _createClass2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); _createClass2 = function _createClass2() { return data; }; return data; } function _defineProperty2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); _defineProperty2 = function _defineProperty2() { return data; }; return data; } function _misc() { var data = require("../util/misc.js"); _misc = function _misc() { return data; }; return data; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2()["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } var objectPath = require('object-path'); var path = require('path'); var BaseRegistry = /*#__PURE__*/function () { function BaseRegistry(cwd, registries, requestManager, reporter, enableDefaultRc, extraneousRcFiles) { (0, _classCallCheck2()["default"])(this, BaseRegistry); (0, _defineProperty2()["default"])(this, "enableDefaultRc", void 0); (0, _defineProperty2()["default"])(this, "extraneousRcFiles", void 0); (0, _defineProperty2()["default"])(this, "reporter", void 0); (0, _defineProperty2()["default"])(this, "registries", void 0); (0, _defineProperty2()["default"])(this, "requestManager", void 0); (0, _defineProperty2()["default"])(this, "token", void 0); (0, _defineProperty2()["default"])(this, "otp", void 0); (0, _defineProperty2()["default"])(this, "cwd", void 0); (0, _defineProperty2()["default"])(this, "config", void 0); (0, _defineProperty2()["default"])(this, "loc", void 0); (0, _defineProperty2()["default"])(this, "folder", void 0); this.reporter = reporter; this.requestManager = requestManager; this.registries = registries; this.config = {}; this.folder = ''; this.token = ''; this.loc = ''; this.cwd = cwd; this.enableDefaultRc = enableDefaultRc; this.extraneousRcFiles = extraneousRcFiles; } // the filename to use for package metadata (0, _createClass2()["default"])(BaseRegistry, [{ key: "setToken", value: function setToken(token) { this.token = token; } }, { key: "setOtp", value: function setOtp(otp) { this.otp = otp; } }, { key: "getOption", value: function getOption(key) { return this.config[key]; } }, { key: "getAvailableRegistries", value: function getAvailableRegistries() { var config = this.config; return Object.keys(config).reduce(function (registries, option) { if (option === 'registry' || option.split(':')[1] === 'registry') { registries.push(config[option]); } return registries; }, []); } }, { key: "loadConfig", value: function loadConfig() { return Promise.resolve(); } }, { key: "checkOutdated", value: function checkOutdated(config, name, range) { return Promise.reject(new Error('unimplemented')); } }, { key: "saveHomeConfig", value: function saveHomeConfig(config) { return Promise.reject(new Error('unimplemented')); } }, { key: "request", value: function request(pathname) { var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return this.requestManager.request(_objectSpread({ url: pathname }, opts)); } }, { key: "init", value: function () { var _init = (0, _asyncToGenerator2()["default"])( /*#__PURE__*/_regenerator()["default"].mark(function _callee() { var overrides, _i, _Object$keys, override, val, _args = arguments; return _regenerator()["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: overrides = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}; this.mergeEnv('yarn_'); _context.next = 4; return this.loadConfig(); case 4: for (_i = 0, _Object$keys = Object.keys(overrides); _i < _Object$keys.length; _i++) { override = _Object$keys[_i]; val = overrides[override]; if (val !== undefined) { this.config[override] = val; } } this.loc = path.join(this.cwd, this.folder); case 6: case "end": return _context.stop(); } }, _callee, this); })); function init() { return _init.apply(this, arguments); } return init; }() }, { key: "mergeEnv", value: function mergeEnv(prefix) { // try environment variables for (var envKey in process.env) { var key = envKey.toLowerCase(); // only accept keys prefixed with the prefix if (key.indexOf(prefix.toLowerCase()) !== 0) { continue; } var val = BaseRegistry.normalizeConfigOption(process.env[envKey]); // remove config prefix key = (0, _misc().removePrefix)(key, prefix.toLowerCase()); // replace dunders with dots key = key.replace(/__/g, '.'); // replace underscores with dashes ignoring keys that start with an underscore key = key.replace(/([^_])_/g, '$1-'); // set it via a path objectPath.set(this.config, key, val); } } }], [{ key: "normalizeConfig", value: function normalizeConfig(config) { for (var key in config) { config[key] = BaseRegistry.normalizeConfigOption(config[key]); } return config; } }, { key: "normalizeConfigOption", value: function normalizeConfigOption(val) { if (val === 'true') { return true; } else if (val === 'false') { return false; } else { return val; } } }]); return BaseRegistry; }(); exports["default"] = BaseRegistry; (0, _defineProperty2()["default"])(BaseRegistry, "filename", void 0); //# sourceMappingURL=base-registry.js.map