UNPKG

webpack-config

Version:

Helps to load, extend and merge webpack configs

104 lines (85 loc) 2.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _getIterator2 = require("babel-runtime/core-js/get-iterator"); var _getIterator3 = _interopRequireDefault(_getIterator2); var _weakMap = require("babel-runtime/core-js/weak-map"); var _weakMap2 = _interopRequireDefault(_weakMap); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * @private * @type {WeakMap} */ const ENVIRONMENT = new _weakMap2.default(); /** * @private * @type {WeakMap} */ const PATTERN_CACHE = new _weakMap2.default(); /** * @class */ class ConfigStringResolver { /** * @constructor * @param {ConfigEnvironment} environment * @param {ConfigPatternCache} patternCache */ constructor(environment, patternCache) { ENVIRONMENT.set(this, environment); PATTERN_CACHE.set(this, patternCache); } /** * @readonly * @type {ConfigEnvironment} */ get environment() { return ENVIRONMENT.get(this); } /** * @readonly * @type {ConfigPatternCache} */ get patternCache() { return PATTERN_CACHE.get(this); } /** * @param {String} value * @returns {String} */ resolve(value) { const options = {}; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = (0, _getIterator3.default)(this.environment.keys()), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { const key = _step.value; options[key] = this.environment.valueOf(key); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } let resolvedValue; try { resolvedValue = this.patternCache.eval(value, options); } catch (err) { resolvedValue = value; } return resolvedValue; } } exports.default = ConfigStringResolver; //# sourceMappingURL=ConfigStringResolver.js.map