Code coverage report for lib\dependencies\RequireContextDependencyParserPlugin.js

Statements: 86.36% (19 / 22)      Branches: 66.67% (6 / 9)      Functions: 100% (1 / 1)      Lines: 100% (19 / 19)      Ignored: none     

All files » lib\dependencies\ » RequireContextDependencyParserPlugin.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        1 1   1   70 70 70   30 30 30     30 30 30     70 70 70 70 70 70 70          
/*
	MIT License http://www.opensource.org/licenses/mit-license.php
	Author Tobias Koppers @sokra
*/
var AbstractPlugin = require("../AbstractPlugin");
var RequireContextDependency = require("./RequireContextDependency");
 
module.exports = AbstractPlugin.create({
	"call require.context": function(expr) {
		var regExp = /^\.\/.*$/;
		var recursive = true;
		switch(expr.arguments.length) {
		case 3:
			var regExpExpr = this.evaluateExpression(expr.arguments[2]);
			Iif(!regExpExpr.isRegExp()) return;
			regExp = regExpExpr.regExp;
			// fall through
		case 2:
			var recursiveExpr = this.evaluateExpression(expr.arguments[1]);
			Iif(!recursiveExpr.isBoolean()) return;
			recursive = recursiveExpr.bool;
			// fall through
		case 1:
			var requestExpr = this.evaluateExpression(expr.arguments[0]);
			Iif(!requestExpr.isString()) return;
			var dep = new RequireContextDependency(requestExpr.string, recursive, regExp, expr.range);
			dep.loc = expr.loc;
			dep.optional = this.scope.inTry;
			this.state.current.addDependency(dep);
			return true;
		}
	}
});