aboutsummaryrefslogtreecommitdiff
path: root/node_modules/webpack/lib/optimize/ChunkModuleIdRangePlugin.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-05-03 15:35:00 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-05-03 15:35:00 +0200
commitde98e0b232509d5f40c135d540a70e415272ff85 (patch)
treea79222a5b58484ab3b80d18efcaaa7ccc4769b33 /node_modules/webpack/lib/optimize/ChunkModuleIdRangePlugin.js
parente0c9d480a73fa629c1e4a47d3e721f1d2d345406 (diff)
node_modules
Diffstat (limited to 'node_modules/webpack/lib/optimize/ChunkModuleIdRangePlugin.js')
-rw-r--r--node_modules/webpack/lib/optimize/ChunkModuleIdRangePlugin.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/node_modules/webpack/lib/optimize/ChunkModuleIdRangePlugin.js b/node_modules/webpack/lib/optimize/ChunkModuleIdRangePlugin.js
new file mode 100644
index 000000000..8166fc315
--- /dev/null
+++ b/node_modules/webpack/lib/optimize/ChunkModuleIdRangePlugin.js
@@ -0,0 +1,55 @@
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+"use strict";
+class ChunkModuleIdRangePlugin {
+ constructor(options) {
+ this.options = options;
+ }
+ apply(compiler) {
+ const options = this.options;
+ compiler.plugin("compilation", (compilation) => {
+ compilation.plugin("module-ids", (modules) => {
+ const chunk = this.chunks.filter((chunk) => {
+ return chunk.name === options.name;
+ })[0];
+ if(!chunk) throw new Error("ChunkModuleIdRangePlugin: Chunk with name '" + options.name + "' was not found");
+ let currentId = options.start;
+ let chunkModules;
+ if(options.order) {
+ chunkModules = chunk.modules.slice();
+ switch(options.order) {
+ case "index":
+ chunkModules.sort((a, b) => {
+ return a.index - b.index;
+ });
+ break;
+ case "index2":
+ chunkModules.sort((a, b) => {
+ return a.index2 - b.index2;
+ });
+ break;
+ default:
+ throw new Error("ChunkModuleIdRangePlugin: unexpected value of order");
+ }
+
+ } else {
+ chunkModules = modules.filter((m) => {
+ return m.chunks.indexOf(chunk) >= 0;
+ });
+ }
+
+ for(let i = 0; i < chunkModules.length; i++) {
+ const m = chunkModules[i];
+ if(m.id === null) {
+ m.id = currentId++;
+ }
+ if(options.end && currentId > options.end)
+ break;
+ }
+ });
+ });
+ }
+}
+module.exports = ChunkModuleIdRangePlugin;