Code coverage report for lib\dependencies\AMDDefineDependency.js

Statements: 85.42% (41 / 48)      Branches: 80.49% (33 / 41)      Functions: 100% (3 / 3)      Lines: 85.42% (41 / 48)      Ignored: none     

All files » lib\dependencies\ » AMDDefineDependency.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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87        1   1 313 313 313 313 313 313   1   1 1   1   1 313 313 40             40     20 20   20 20     20 20   20 20                   273     2   2 271     80 80   80 191     151 151   151 151 40     40 40   40        
/*
	MIT License http://www.opensource.org/licenses/mit-license.php
	Author Tobias Koppers @sokra
*/
var NullDependency = require("./NullDependency");
 
function AMDDefineDependency(range, arrayRange, functionRange, objectRange) {
	NullDependency.call(this);
	this.Class = AMDDefineDependency;
	this.range = range;
	this.arrayRange = arrayRange;
	this.functionRange = functionRange;
	this.objectRange = objectRange;
}
module.exports = AMDDefineDependency;
 
AMDDefineDependency.prototype = Object.create(NullDependency.prototype);
AMDDefineDependency.prototype.type = "amd define";
 
AMDDefineDependency.Template = function AMDRequireDependencyTemplate() {};
 
AMDDefineDependency.Template.prototype.apply = function(dep, source, outputOptions, requestShortener) {
	var localModuleVar = dep.localModule && dep.localModule.used && dep.localModule.variableName();
	if(localModuleVar) {
		Iif(dep.objectRange && !dep.functionRange) {
			// define("name", {...})
			// => var XXX; !(XXX = {...})
			source.insert(0, "var " + localModuleVar + ";");
			source.replace(dep.range[0], dep.objectRange[0]-1,
				"!(" + localModuleVar + " = ");
			source.replace(dep.objectRange[1], dep.range[1]-1, ")");
		} else if(!dep.arrayRange && dep.functionRange && !dep.objectRange) {
			// define("name", function() {...})
			// => var XXX; !(XXX = (function() {...}.call(exports, __webpack_require__, exports, module)))
			source.insert(0, "var " + localModuleVar + ";");
			source.replace(dep.range[0], dep.functionRange[0]-1,
				"!(" + localModuleVar + " = (");
			source.replace(dep.functionRange[1], dep.range[1]-1, ".call(exports, __webpack_require__, exports, module)))");
		} else Eif(dep.arrayRange && dep.functionRange && !dep.objectRange) {
			// define("name", [], function() {...})
			// => var __WEBPACK_AMD_DEFINE_ARRAY__, XXX; !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], XXX = (function() {...}.apply(null, __WEBPACK_AMD_DEFINE_ARRAY__)))
			source.insert(0, "var __WEBPACK_AMD_DEFINE_ARRAY__, " + localModuleVar + ";");
			source.replace(dep.range[0], dep.arrayRange[0]-1,
				"!(__WEBPACK_AMD_DEFINE_ARRAY__ = ");
			source.replace(dep.arrayRange[1], dep.functionRange[0]-1, ", " + localModuleVar + " = (");
			source.replace(dep.functionRange[1], dep.range[1]-1, ".apply(null, __WEBPACK_AMD_DEFINE_ARRAY__)))");
		} else if(dep.functionRange && dep.objectRange) {
			// define("name", abc)
			// => var __WEBPACK_AMD_DEFINE_FACTORY__, XXX; !(__WEBPACK_AMD_DEFINE_FACTORY__ = (abc), XXX = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__))
			source.insert(0, "var __WEBPACK_AMD_DEFINE_FACTORY__, " + localModuleVar + ";");
			source.replace(dep.range[0], dep.functionRange[0]-1,
				"!(__WEBPACK_AMD_DEFINE_FACTORY__ = (");
			source.replace(dep.functionRange[1], dep.range[1]-1, "), " + localModuleVar + " = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__))");
		}
	} else {
		if(dep.objectRange && !dep.functionRange) {
			// define(["name", ]{...})
			// => !(module.exports = {...})
			source.replace(dep.range[0], dep.objectRange[0]-1,
				"!(module.exports = ");
			source.replace(dep.objectRange[1], dep.range[1]-1, ")");
		} else if(!dep.arrayRange && dep.functionRange && !dep.objectRange) {
			// define(["name", ]function() {...})
			// => var __WEBPACK_AMD_DEFINE_RESULT__; !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {...}.call(exports, __webpack_require__, exports, module)), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))
			source.insert(0, "var __WEBPACK_AMD_DEFINE_RESULT__;");
			source.replace(dep.range[0], dep.functionRange[0]-1,
				"!(__WEBPACK_AMD_DEFINE_RESULT__ = (");
			source.replace(dep.functionRange[1], dep.range[1]-1, ".call(exports, __webpack_require__, exports, module)), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))");
		} else if(dep.arrayRange && dep.functionRange && !dep.objectRange) {
			// define(["name", ][], function() {...})
			// => var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {...}.apply(null, __WEBPACK_AMD_DEFINE_ARRAY__)), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))
			source.insert(0, "var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;");
			source.replace(dep.range[0], dep.arrayRange[0]-1,
				"!(__WEBPACK_AMD_DEFINE_ARRAY__ = ");
			source.replace(dep.arrayRange[1], dep.functionRange[0]-1, ", __WEBPACK_AMD_DEFINE_RESULT__ = (");
			source.replace(dep.functionRange[1], dep.range[1]-1, ".apply(null, __WEBPACK_AMD_DEFINE_ARRAY__)), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))");
		} else Eif(dep.functionRange && dep.objectRange) {
			// define(["name", ]abc)
			// => var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__; !(__WEBPACK_AMD_DEFINE_FACTORY__ = (abc), (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_RESULT__ = __WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : module.exports = __WEBPACK_AMD_DEFINE_FACTORY__))
			source.insert(0, "var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;");
			source.replace(dep.range[0], dep.functionRange[0]-1,
				"!(__WEBPACK_AMD_DEFINE_FACTORY__ = (");
			source.replace(dep.functionRange[1], dep.range[1]-1, "), (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_RESULT__ = __WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : module.exports = __WEBPACK_AMD_DEFINE_FACTORY__))");
		}
	}
};