UNPKG

webpack-config

Version:

Helps to load, extend and merge webpack configs

90 lines (69 loc) 1.89 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _weakMap = require('babel-runtime/core-js/weak-map'); var _weakMap2 = _interopRequireDefault(_weakMap); var _lodash = require('lodash'); var _Config = require('./Config'); var _Config2 = _interopRequireDefault(_Config); var _ConfigList = require('./ConfigList'); var _ConfigList2 = _interopRequireDefault(_ConfigList); var _ConfigArgv = require('./ConfigArgv'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * @private * @type {WeakMap} */ const CONTAINER = new _weakMap2.default(); /** * @class */ class ConfigFactory { /** * @constructor * @param {ConfigContainer} container */ constructor(container) { CONTAINER.set(this, container); } /** * @readonly * @type {ConfigContainer} */ get container() { return CONTAINER.get(this); } /** * @private * @param {Object|Config} value * @returns {Config} */ initWith(value) { let config; if (value instanceof _Config2.default) { config = value.clone(); } else { config = this.container.resolve(_Config2.default).merge(value); } return config; } /** * @param {Function|Object|Object[]} value * @returns {Config|ConfigList} */ createConfig(value) { let config; if ((0, _lodash.isFunction)(value)) { value = value(_ConfigArgv.env); } if (Array.isArray(value)) { config = _ConfigList2.default.from(value, x => this.initWith(x)); } else if ((0, _lodash.isObject)(value)) { config = this.initWith(value); } return config; } } exports.default = ConfigFactory; //# sourceMappingURL=ConfigFactory.js.map