UNPKG

904 BJavaScriptView Raw
1/**
2 * Find nearest module chunk (not sure that is reliable method, but who cares).
3 * @see http://stackoverflow.com/questions/43202761/how-to-determine-all-module-chunks-in-webpack
4 * @param {NormalModule} module
5 * @param {NormalModule[]} modules - webpack 1 compat
6 * @return {Chunk|null}
7 */
8function getModuleChunk(module, modules) {
9 let chunks;
10
11 if (module.chunksIterable) {
12 chunks = Array.from(module.chunksIterable);
13 } else if (module.mapChunks) {
14 chunks = module.mapChunks();
15 } else {
16 chunks = module.chunks;
17 }
18
19 // webpack 1 compat
20 const issuer = typeof module.issuer === 'string'
21 ? modules.find(m => m.request === module.issuer)
22 : module.issuer;
23
24 if (Array.isArray(chunks) && chunks.length > 0) {
25 return chunks[chunks.length - 1];
26 } else if (issuer) {
27 return getModuleChunk(issuer, modules);
28 }
29
30 return null;
31}
32
33module.exports = getModuleChunk;