UNPKG

@zero-scripts/webpack-config

Version:
45 lines 2.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WebpackConfigModifications = void 0; const core_1 = require("@zero-scripts/core"); const OneOfModification_1 = require("./modifications/OneOfModification"); /** * An API designed for modifying webpack configuration by plugins */ class WebpackConfigModifications extends core_1.AbstractModificationsContainer { insertPlugin(plugin, position = core_1.InsertPos.End, modificationId) { this.modifications.push(new core_1.ConfigModification(c => c.plugins, core_1.ConfigModification.arrayInsertCreator(() => plugin, position), modificationId)); return this; } insertModuleRule(rule, position = core_1.InsertPos.Middle) { this.getOneOfModification().rules.push({ rule, position }); return this; } insertCommonModuleRule(rule, position = core_1.InsertPos.Middle, modificationId) { this.modifications.push(new core_1.ConfigModification(c => c.module.rules, core_1.ConfigModification.arrayInsertCreator(() => rule, position), modificationId)); return this; } insertMinimizer(minimizer, position = core_1.InsertPos.Middle, modificationId) { this.modifications.push(new core_1.ConfigModification(c => c.optimization.minimizer, core_1.ConfigModification.arrayInsertCreator(() => minimizer, position), modificationId)); return this; } addResolveAlias(alias, path, modificationId) { this.modifications.push(new core_1.ConfigModification(c => c.resolve.alias, prevValue => { return Object.assign(Object.assign({}, prevValue), { [alias]: path }); }, modificationId)); return this; } getOneOfModification() { const foundModification = this.modifications.find(modification => modification.id === OneOfModification_1.OneOfModification.id); if (!foundModification) { const modification = new OneOfModification_1.OneOfModification(); this.modifications.push(modification); return modification; } else { return foundModification; } } } exports.WebpackConfigModifications = WebpackConfigModifications; //# sourceMappingURL=WebpackConfigModifications.js.map