| /* |
| MIT License http://www.opensource.org/licenses/mit-license.php |
| Author Tobias Koppers @sokra |
| */ |
| "use strict"; |
| |
| /** @typedef {import("./Module")} Module */ |
| /** @typedef {import("./Dependency")} Dependency */ |
| |
| class ModuleReason { |
| /** |
| * @param {Module} module the referencing module |
| * @param {Dependency} dependency the referencing dependency |
| * @param {string=} explanation some extra detail |
| */ |
| constructor(module, dependency, explanation) { |
| this.module = module; |
| this.dependency = dependency; |
| this.explanation = explanation; |
| this._chunks = null; |
| } |
| |
| hasChunk(chunk) { |
| if (this._chunks) { |
| if (this._chunks.has(chunk)) return true; |
| } else if (this.module && this.module._chunks.has(chunk)) return true; |
| return false; |
| } |
| |
| rewriteChunks(oldChunk, newChunks) { |
| if (!this._chunks) { |
| if (this.module) { |
| if (!this.module._chunks.has(oldChunk)) return; |
| this._chunks = new Set(this.module._chunks); |
| } else { |
| this._chunks = new Set(); |
| } |
| } |
| if (this._chunks.has(oldChunk)) { |
| this._chunks.delete(oldChunk); |
| for (let i = 0; i < newChunks.length; i++) { |
| this._chunks.add(newChunks[i]); |
| } |
| } |
| } |
| } |
| |
| module.exports = ModuleReason; |