webpack/lib/dependencies/AMDDefineDependency.js

115 lines
4.4 KiB
JavaScript
Raw Normal View History

2013-01-31 01:49:25 +08:00
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
var NullDependency = require("./NullDependency");
function AMDDefineDependency(range, arrayRange, functionRange, objectRange) {
2013-01-31 01:49:25 +08:00
NullDependency.call(this);
this.range = range;
this.arrayRange = arrayRange;
this.functionRange = functionRange;
this.objectRange = objectRange;
2013-01-31 01:49:25 +08:00
}
module.exports = AMDDefineDependency;
AMDDefineDependency.prototype = Object.create(NullDependency.prototype);
AMDDefineDependency.prototype.constructor = AMDDefineDependency;
2013-01-31 01:49:25 +08:00
AMDDefineDependency.prototype.type = "amd define";
2016-02-23 01:47:16 +08:00
AMDDefineDependency.Template = function AMDDefineDependencyTemplate() {};
2013-01-31 01:49:25 +08:00
2015-04-24 05:55:50 +08:00
AMDDefineDependency.Template.prototype.apply = function(dep, source) {
2014-01-24 01:35:56 +08:00
var localModuleVar = dep.localModule && dep.localModule.used && dep.localModule.variableName();
2015-07-13 06:20:09 +08:00
function replace(def, text) {
if(localModuleVar) text = text.replace(/XXX/g, localModuleVar.replace(/\$/g, "$$$$"));
if(localModuleVar) def = def.replace(/XXX/g, localModuleVar.replace(/\$/g, "$$$$"));
var texts = text.split("#");
if(def)
source.insert(0, def);
var current = dep.range[0];
if(dep.arrayRange) {
2015-04-24 05:55:50 +08:00
source.replace(current, dep.arrayRange[0] - 1, texts.shift());
current = dep.arrayRange[1];
2014-01-24 01:35:56 +08:00
}
if(dep.objectRange) {
2015-04-24 05:55:50 +08:00
source.replace(current, dep.objectRange[0] - 1, texts.shift());
current = dep.objectRange[1];
} else if(dep.functionRange) {
2015-04-24 05:55:50 +08:00
source.replace(current, dep.functionRange[0] - 1, texts.shift());
current = dep.functionRange[1];
2014-01-24 01:35:56 +08:00
}
2015-04-24 05:55:50 +08:00
source.replace(current, dep.range[1] - 1, texts.shift());
if(texts.length > 0)
throw new Error("Implementation error");
2013-01-31 01:49:25 +08:00
}
2016-08-17 18:52:02 +08:00
var branch = (localModuleVar ? "l" : "") +
(dep.arrayRange ? "a" : "") +
(dep.objectRange ? "o" : "") +
(dep.functionRange ? "f" : "");
var defs = {
2016-08-17 18:52:02 +08:00
f: [
"var __WEBPACK_AMD_DEFINE_RESULT__;",
"!(__WEBPACK_AMD_DEFINE_RESULT__ = #.call(exports, __webpack_require__, exports, module), " +
"__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))"
],
o: [
"",
"!(module.exports = #)"
],
of: [
"var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;",
"!(__WEBPACK_AMD_DEFINE_FACTORY__ = (#), " +
"__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? " +
"(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : " +
"__WEBPACK_AMD_DEFINE_FACTORY__), " +
"__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))"
],
af: [
"var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;",
"!(__WEBPACK_AMD_DEFINE_ARRAY__ = #, __WEBPACK_AMD_DEFINE_RESULT__ = #.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), " +
"__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))"
],
ao: [
"",
"!(#, module.exports = #)"
],
aof: [
"var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;",
"!(__WEBPACK_AMD_DEFINE_ARRAY__ = #, __WEBPACK_AMD_DEFINE_FACTORY__ = (#), " +
"__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? " +
"(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), " +
"__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))"
],
lf: [
"var XXX;",
"!(XXX = #.call(exports, __webpack_require__, exports, module))"
],
lo: [
"var XXX;",
"!(XXX = #)"
],
lof: [
"var __WEBPACK_AMD_DEFINE_FACTORY__, XXX;",
"!(__WEBPACK_AMD_DEFINE_FACTORY__ = (#), XXX = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? " +
"(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__))"
],
laf: [
"var __WEBPACK_AMD_DEFINE_ARRAY__, XXX;",
"!(__WEBPACK_AMD_DEFINE_ARRAY__ = #, XXX = (#.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)))"
],
lao: [
"var XXX;",
"!(#, XXX = #)"
],
laof: [
"var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_FACTORY__, XXX;",
"!(__WEBPACK_AMD_DEFINE_ARRAY__ = #, __WEBPACK_AMD_DEFINE_FACTORY__ = (#), " +
"XXX = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? " +
"(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__))"
]
};
replace.apply(null, defs[branch]);
2013-01-31 01:49:25 +08:00
};