UNPKG

webpack-config

Version:

Helps to load, extend and merge webpack configs

143 lines (101 loc) 4.75 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _entries = require('babel-runtime/core-js/object/entries'); var _entries2 = _interopRequireDefault(_entries); var _weakMap = require('babel-runtime/core-js/weak-map'); var _weakMap2 = _interopRequireDefault(_weakMap); var _constitute = require('constitute'); var _Config = require('./Config'); var _Config2 = _interopRequireDefault(_Config); var _ConfigCache = require('./ConfigCache'); var _ConfigCache2 = _interopRequireDefault(_ConfigCache); var _ConfigEnvironment = require('./ConfigEnvironment'); var _ConfigEnvironment2 = _interopRequireDefault(_ConfigEnvironment); var _ConfigPatternCache = require('./ConfigPatternCache'); var _ConfigPatternCache2 = _interopRequireDefault(_ConfigPatternCache); var _ConfigStringResolver = require('./ConfigStringResolver'); var _ConfigStringResolver2 = _interopRequireDefault(_ConfigStringResolver); var _ConfigPathResolver = require('./ConfigPathResolver'); var _ConfigPathResolver2 = _interopRequireDefault(_ConfigPathResolver); var _ConfigLoader = require('./ConfigLoader'); var _ConfigLoader2 = _interopRequireDefault(_ConfigLoader); var _ConfigFactory = require('./ConfigFactory'); var _ConfigFactory2 = _interopRequireDefault(_ConfigFactory); var _ConfigOptionsResolver = require('./ConfigOptionsResolver'); var _ConfigOptionsResolver2 = _interopRequireDefault(_ConfigOptionsResolver); var _ConfigDefaultsCommand = require('./ConfigDefaultsCommand'); var _ConfigDefaultsCommand2 = _interopRequireDefault(_ConfigDefaultsCommand); var _ConfigMergeCommand = require('./ConfigMergeCommand'); var _ConfigMergeCommand2 = _interopRequireDefault(_ConfigMergeCommand); var _ConfigExtendCommand = require('./ConfigExtendCommand'); var _ConfigExtendCommand2 = _interopRequireDefault(_ConfigExtendCommand); var _ConfigCommandFactory = require('./ConfigCommandFactory'); var _ConfigCommandFactory2 = _interopRequireDefault(_ConfigCommandFactory); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * @private * @type {WeakMap} */ const CONTAINER = new _weakMap2.default(); /** * @class */ class ConfigContainer { /** * @constructor */ constructor() { CONTAINER.set(this, new _constitute.Container()); this.setUp(); } /** * @protected * @type {Container} */ get container() { return CONTAINER.get(this); } /** * @protected * @returns {void} */ setUp() { const container = this.container; container.bindValue(ConfigContainer, this); container.bindValue(_ConfigEnvironment2.default, new _ConfigEnvironment2.default((0, _entries2.default)(process.env))); container.bindClass(_ConfigCache2.default, _ConfigCache2.default, [_ConfigEnvironment2.default]); container.bindValue(_ConfigPatternCache2.default, new _ConfigPatternCache2.default()); container.bindClass(_ConfigStringResolver2.default, _ConfigStringResolver2.default, [_ConfigEnvironment2.default, _ConfigPatternCache2.default]); container.bindClass(_ConfigPathResolver2.default, _ConfigPathResolver2.default, [_ConfigStringResolver2.default]); container.bindClass(_ConfigLoader2.default, _ConfigLoader2.default, [_ConfigPathResolver2.default, _ConfigCache2.default, _ConfigFactory2.default]); container.bindClass(_ConfigFactory2.default, _ConfigFactory2.default, [ConfigContainer]); container.bindClass(_Config2.default, _Config2.default, _constitute.Transient.with([_ConfigCommandFactory2.default])); container.bindClass(_ConfigOptionsResolver2.default, _ConfigOptionsResolver2.default, [_ConfigStringResolver2.default]); container.bindClass(_ConfigDefaultsCommand2.default, _ConfigDefaultsCommand2.default, [_ConfigOptionsResolver2.default]); container.bindClass(_ConfigMergeCommand2.default, _ConfigMergeCommand2.default, [_ConfigOptionsResolver2.default]); container.bindClass(_ConfigExtendCommand2.default, _ConfigExtendCommand2.default, [_ConfigOptionsResolver2.default, _ConfigLoader2.default, _ConfigFactory2.default]); container.bindClass(_ConfigCommandFactory2.default, _ConfigCommandFactory2.default, [ConfigContainer]); } /** * @param {*} T * @returns {*} */ resolve(T) { return this.container.constitute(T); } /** * @param {*} T * @returns {Proxy<T>} */ proxy(T) { return new Proxy(function () {}, { construct: () => { return this.resolve(T); } }); } } exports.default = ConfigContainer; //# sourceMappingURL=ConfigContainer.js.map