-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathboilerplate.js
62 lines (56 loc) · 1.82 KB
/
boilerplate.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
/*eslint semi:[0], no-native-reassign:[0]*/
global = this;
(function (modules) {
// Bundle allows the run-time to extract already-loaded modules from the
// boot bundle.
var bundle = {};
var main;
// Unpack module tuples into module objects.
for (var i = 0; i < modules.length; i++) {
var module = modules[i];
module = modules[i] = new Module(
module[0],
module[1],
module[2],
module[3],
module[4]
);
bundle[module.filename] = module;
}
function Module(id, dirname, basename, dependencies, factory) {
this.id = id;
this.dirname = dirname;
this.filename = dirname + "/" + basename;
// Dependency map and factory are used to instantiate bundled modules.
this.dependencies = dependencies;
this.factory = factory;
}
Module.prototype._require = function () {
var module = this;
if (module.exports === void 0) {
module.exports = {};
var require = function (id) {
var index = module.dependencies[id];
var dependency = modules[index];
if (!dependency)
throw new Error("Bundle is missing a dependency: " + id);
return dependency._require();
};
require.main = main;
module.exports = module.factory(
require,
module.exports,
module,
module.filename,
module.dirname
) || module.exports;
}
return module.exports;
};
// Communicate the bundle to all bundled modules
Module.prototype.modules = bundle;
return function require(filename) {
main = bundle[filename];
main._require();
}
})