Code coverage report for lib\ContextReplacementPlugin.js

Statements: 80.95% (34 / 42)      Branches: 54.17% (13 / 24)      Functions: 100% (5 / 5)      Lines: 85% (34 / 40)      Ignored: none     

All files » lib\ » ContextReplacementPlugin.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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54        1   1 2 2 1 1 1   2 1 1   2 2 2   1 1 2 2 2 2 2 2 2 2               2   2 2 2 2 1 2 1 2 2   2      
/*
	MIT License http://www.opensource.org/licenses/mit-license.php
	Author Tobias Koppers @sokra
*/
var path = require("path");
 
function ContextReplacementPlugin(resourceRegExp, newContentResource, newContentRecursive, newContentRegExp) {
	this.resourceRegExp = resourceRegExp;
	if(typeof newContentResource !== "string") {
		newContentRegExp = newContentRecursive;
		newContentRecursive = newContentResource;
		newContentResource = undefined;
	}
	if(typeof newContentRecursive !== "boolean") {
		newContentRegExp = newContentRecursive;
		newContentRecursive = undefined;
	}
	this.newContentResource = newContentResource;
	this.newContentRecursive = newContentRecursive;
	this.newContentRegExp = newContentRegExp;
}
module.exports = ContextReplacementPlugin;
ContextReplacementPlugin.prototype.apply = function(compiler) {
	var resourceRegExp = this.resourceRegExp;
	var newContentResource = this.newContentResource;
	var newContentRecursive = this.newContentRecursive;
	var newContentRegExp = this.newContentRegExp;
	compiler.plugin("context-module-factory", function(cmf) {
		cmf.plugin("before-resolve", function(result, callback) {
			Iif(!result) return callback();
			Iif(resourceRegExp.test(result.request)) {
				if(typeof newContentResource !== "undefined")
					result.request = newContentResource;
				if(typeof newContentRecursive !== "undefined")
					result.recursive = newContentRecursive;
				if(typeof newContentRegExp !== "undefined")
					result.regExp = newContentRegExp;
			}
			return callback(null, result);
		});
		cmf.plugin("after-resolve", function(result, callback) {
			Iif(!result) return callback();
			Eif(resourceRegExp.test(result.resource)) {
				if(typeof newContentResource !== "undefined")
					result.resource = path.resolve(result.resource, newContentResource);
				if(typeof newContentRecursive !== "undefined")
					result.recursive = newContentRecursive;
				Eif(typeof newContentRegExp !== "undefined")
					result.regExp = newContentRegExp;
			}
			return callback(null, result);
		});
	});
};