UNPKG

pbplus-cognito-sdk

Version:
59 lines (57 loc) 1.57 kB
/* 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.hooks.compilation.tap("ChunkModuleIdRangePlugin", compilation => { compilation.hooks.moduleIds.tap("ChunkModuleIdRangePlugin", modules => { const chunk = this.chunks.find(chunk => chunk.name === options.name); 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.includes(chunk); }); } 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;