Code coverage report for lib\optimize\MergeDuplicateChunksPlugin.js

Statements: 100% (18 / 18)      Branches: 83.33% (5 / 6)      Functions: 100% (7 / 7)      Lines: 100% (17 / 17)      Ignored: none     

All files » lib\optimize\ » MergeDuplicateChunksPlugin.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33        1   1   1 237 487       1 484 496 496 496 752 237 237 21 21 21   216            
/*
	MIT License http://www.opensource.org/licenses/mit-license.php
	Author Tobias Koppers @sokra
*/
function MergeDuplicateChunksPlugin() {
}
module.exports = MergeDuplicateChunksPlugin;
 
function getChunkIdentifier(chunk) {
	return chunk.modules.map(function(m) {
		return m.identifier();
	}).sort().join(", ");
}
 
MergeDuplicateChunksPlugin.prototype.apply = function(compiler) {
	compiler.plugin("compilation", function(compilation) {
		compilation.plugin("optimize-chunks", function(chunks) {
			var map = {};
			chunks.slice().forEach(function(chunk) {
				if(chunk.initial) return;
				var ident = getChunkIdentifier(chunk);
				if(map[ident]) {
					Eif(map[ident].integrate(chunk, "duplicate"))
						chunks.splice(chunks.indexOf(chunk), 1);
					return;
				}
				map[ident] = chunk;
			});
		});
	});
};