PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` /* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; /** @typedef {import("../../declarations/WebpackOptions").ChunkLoadingType} ChunkLoadingType */ /** @typedef {import("../Compiler")} Compiler */ /** @type {WeakMap>} */ const enabledTypes = new WeakMap(); const getEnabledTypes = compiler => { let set = enabledTypes.get(compiler); if (set === undefined) { set = new Set(); enabledTypes.set(compiler, set); } return set; }; class EnableChunkLoadingPlugin { /** * @param {ChunkLoadingType} type library type that should be available */ constructor(type) { this.type = type; } /** * @param {Compiler} compiler the compiler instance * @param {ChunkLoadingType} type type of library * @returns {void} */ static setEnabled(compiler, type) { getEnabledTypes(compiler).add(type); } /** * @param {Compiler} compiler the compiler instance * @param {ChunkLoadingType} type type of library * @returns {void} */ static checkEnabled(compiler, type) { if (!getEnabledTypes(compiler).has(type)) { throw new Error( `Chunk loading type "${type}" is not enabled. ` + "EnableChunkLoadingPlugin need to be used to enable this type of chunk loading. " + 'This usually happens through the "output.enabledChunkLoadingTypes" option. ' + 'If you are using a function as entry which sets "chunkLoading", you need to add all potential chunk loading types to "output.enabledChunkLoadingTypes". ' + "These types are enabled: " + Array.from(getEnabledTypes(compiler)).join(", ") ); } } /** * Apply the plugin * @param {Compiler} compiler the compiler instance * @returns {void} */ apply(compiler) { const { type } = this; // Only enable once const enabled = getEnabledTypes(compiler); if (enabled.has(type)) return; enabled.add(type); if (typeof type === "string") { switch (type) { case "jsonp": { const JsonpChunkLoadingPlugin = require("../web/JsonpChunkLoadingPlugin"); new JsonpChunkLoadingPlugin().apply(compiler); break; } case "import-scripts": { const ImportScriptsChunkLoadingPlugin = require("../webworker/ImportScriptsChunkLoadingPlugin"); new ImportScriptsChunkLoadingPlugin().apply(compiler); break; } case "require": { //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const CommonJsChunkLoadingPlugin = require("../node/CommonJsChunkLoadingPlugin"); new CommonJsChunkLoadingPlugin({ asyncChunkLoading: false }).apply(compiler); break; } case "async-node": { //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const CommonJsChunkLoadingPlugin = require("../node/CommonJsChunkLoadingPlugin"); new CommonJsChunkLoadingPlugin({ asyncChunkLoading: true }).apply(compiler); break; } case "import": { const ModuleChunkLoadingPlugin = require("../esm/ModuleChunkLoadingPlugin"); new ModuleChunkLoadingPlugin().apply(compiler); break; } case "universal": // TODO implement universal chunk loading throw new Error("Universal Chunk Loading is not implemented yet"); default: throw new Error(`Unsupported chunk loading type ${type}. Plugins which provide custom chunk loading types must call EnableChunkLoadingPlugin.setEnabled(compiler, type) to disable this error.`); } } else { // TODO support plugin instances here // apply them to the compiler } } } module.exports = EnableChunkLoadingPlugin;