From 14e901225c7fd2ea44201f1d93a8c468129557b5 Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Fri, 8 Nov 2019 13:21:21 +0100 Subject: [PATCH] remove return value of ChunkGraph.connectChunkAndModule --- lib/Chunk.js | 7 +++++-- lib/ChunkGraph.js | 5 +---- lib/Module.js | 7 +++++-- lib/buildChunkGraph.js | 11 ++++++----- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/lib/Chunk.js b/lib/Chunk.js index 819f34119..5f372b8e3 100644 --- a/lib/Chunk.js +++ b/lib/Chunk.js @@ -132,10 +132,13 @@ class Chunk { * @returns {boolean} true, if the chunk could be added */ addModule(module) { - return ChunkGraph.getChunkGraphForChunk( + const chunkGraph = ChunkGraph.getChunkGraphForChunk( this, "Chunk.addModule" - ).connectChunkAndModule(this, module); + ); + if (chunkGraph.isModuleInChunk(module, this)) return false; + chunkGraph.connectChunkAndModule(this, module); + return true; } /** diff --git a/lib/ChunkGraph.js b/lib/ChunkGraph.js index 1b547c48f..44c35125b 100644 --- a/lib/ChunkGraph.js +++ b/lib/ChunkGraph.js @@ -256,16 +256,13 @@ class ChunkGraph { /** * @param {Chunk} chunk the new chunk * @param {Module} module the module - * @returns {boolean} true, if the chunk could be added. false if it was already added + * @returns {void} */ connectChunkAndModule(chunk, module) { const cgm = this._getChunkGraphModule(module); const cgc = this._getChunkGraphChunk(chunk); - // TODO refactor to remove return value - if (cgm.chunks.has(chunk) && cgc.modules.has(module)) return false; cgm.chunks.add(chunk); cgc.modules.add(module); - return true; } /** diff --git a/lib/Module.js b/lib/Module.js index 1cce060de..2c73ca994 100644 --- a/lib/Module.js +++ b/lib/Module.js @@ -248,10 +248,13 @@ class Module extends DependenciesBlock { } addChunk(chunk) { - return ChunkGraph.getChunkGraphForModule( + const chunkGraph = ChunkGraph.getChunkGraphForModule( this, "Module.addChunk" - ).connectChunkAndModule(chunk, this); + ); + if (chunkGraph.isModuleInChunk(this, chunk)) return false; + chunkGraph.connectChunkAndModule(chunk, this); + return true; } removeChunk(chunk) { diff --git a/lib/buildChunkGraph.js b/lib/buildChunkGraph.js index 9da67baa9..0066d099d 100644 --- a/lib/buildChunkGraph.js +++ b/lib/buildChunkGraph.js @@ -303,17 +303,18 @@ const visitModules = ( switch (queueItem.action) { case ADD_AND_ENTER_MODULE: { + if (chunkGraph.isModuleInChunk(module, chunk)) { + // already connected, skip it + break; + } if (minAvailableModules.has(module)) { // already in parent chunks // skip it for now, but enqueue for rechecking when minAvailableModules shrinks skippedItems.push(queueItem); break; } - // We connect Module and Chunk when not already done - if (!chunkGraph.connectChunkAndModule(chunk, module)) { - // already connected, skip it - break; - } + // We connect Module and Chunk + chunkGraph.connectChunkAndModule(chunk, module); } // fallthrough case ENTER_MODULE: {