"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const bundle_calculator_1 = require("../utilities/bundle-calculator"); class BundleBudgetPlugin { constructor(options) { this.options = options; } apply(compiler) { const { budgets } = this.options; if (!budgets || budgets.length === 0) { return; } compiler.hooks.afterEmit.tap('BundleBudgetPlugin', (compilation) => { this.runChecks(budgets, compilation); }); } runChecks(budgets, compilation) { // No process bundle results because this plugin is only used when differential // builds are disabled. const processResults = []; const stats = compilation.getStats().toJson(); for (const { severity, message } of bundle_calculator_1.checkBudgets(budgets, stats, processResults)) { switch (severity) { case bundle_calculator_1.ThresholdSeverity.Warning: compilation.warnings.push(`budgets: ${message}`); break; case bundle_calculator_1.ThresholdSeverity.Error: compilation.errors.push(`budgets: ${message}`); break; } } } } exports.BundleBudgetPlugin = BundleBudgetPlugin;