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");
|
|
|
|
|
2013-12-29 19:11:03 +08:00
|
|
|
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;
|
2013-12-29 19:11:03 +08:00
|
|
|
this.objectRange = objectRange;
|
2013-01-31 01:49:25 +08:00
|
|
|
}
|
|
|
|
module.exports = AMDDefineDependency;
|
|
|
|
|
|
|
|
AMDDefineDependency.prototype = Object.create(NullDependency.prototype);
|
2015-05-10 23:12:10 +08:00
|
|
|
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
|
|
|
|
2014-08-21 20:32:24 +08:00
|
|
|
function replace(def, text) {
|
2015-07-16 06:19:23 +08:00
|
|
|
if(localModuleVar) text = text.replace(/XXX/g, localModuleVar.replace(/\$/g, "$$$$"));
|
|
|
|
if(localModuleVar) def = def.replace(/XXX/g, localModuleVar.replace(/\$/g, "$$$$"));
|
2014-08-21 20:32:24 +08:00
|
|
|
var texts = text.split("#");
|
2015-07-16 06:19:23 +08:00
|
|
|
if(def)
|
2014-08-21 20:32:24 +08:00
|
|
|
source.insert(0, def);
|
|
|
|
var current = dep.range[0];
|
2015-07-16 06:19:23 +08:00
|
|
|
if(dep.arrayRange) {
|
2015-04-24 05:55:50 +08:00
|
|
|
source.replace(current, dep.arrayRange[0] - 1, texts.shift());
|
2014-08-21 20:32:24 +08:00
|
|
|
current = dep.arrayRange[1];
|
2014-01-24 01:35:56 +08:00
|
|
|
}
|
2015-07-16 06:19:23 +08:00
|
|
|
if(dep.objectRange) {
|
2015-04-24 05:55:50 +08:00
|
|
|
source.replace(current, dep.objectRange[0] - 1, texts.shift());
|
2014-08-21 20:32:24 +08:00
|
|
|
current = dep.objectRange[1];
|
2015-07-16 06:19:23 +08:00
|
|
|
} else if(dep.functionRange) {
|
2015-04-24 05:55:50 +08:00
|
|
|
source.replace(current, dep.functionRange[0] - 1, texts.shift());
|
2014-08-21 20:32:24 +08:00
|
|
|
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());
|
2015-07-16 06:19:23 +08:00
|
|
|
if(texts.length > 0)
|
2014-08-21 20:32:24 +08:00
|
|
|
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" : "");
|
2014-08-21 20:32:24 +08:00
|
|
|
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__))"
|
|
|
|
]
|
2014-08-21 20:32:24 +08:00
|
|
|
};
|
|
|
|
replace.apply(null, defs[branch]);
|
2013-01-31 01:49:25 +08:00
|
|
|
};
|