WarnCaseSensitiveModulesPlugin.js 973 Bytes
/*
	MIT License http://www.opensource.org/licenses/mit-license.php
	Author Tobias Koppers @sokra
*/
var CaseSensitiveModulesWarning = require("./CaseSensitiveModulesWarning");

function WarnCaseSensitiveModulesPlugin() {}
module.exports = WarnCaseSensitiveModulesPlugin;

WarnCaseSensitiveModulesPlugin.prototype.apply = function(compiler) {
	compiler.plugin("compilation", function(compilation) {
		compilation.plugin("seal", function() {
			var moduleWithoutCase = {};
			this.modules.forEach(function(module) {
				var ident = module.identifier().toLowerCase();
				if(moduleWithoutCase["$" + ident]) {
					moduleWithoutCase["$" + ident].push(module);
				} else {
					moduleWithoutCase["$" + ident] = [module];
				}
			}, this);
			Object.keys(moduleWithoutCase).forEach(function(key) {
				if(moduleWithoutCase[key].length > 1)
					this.warnings.push(new CaseSensitiveModulesWarning(moduleWithoutCase[key]));
			}, this);
		});
	});
};