-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsystem-lite.js
More file actions
48 lines (48 loc) · 1.38 KB
/
Copy pathsystem-lite.js
File metadata and controls
48 lines (48 loc) · 1.38 KB
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
/**
* license: MIT
* author: markus.johnsson@infviz.com
*/
var System;
(function (System) {
var modules = {};
var registers = {};
function register(name, deps, factory) {
registers[name] = {
deps: deps,
factory: factory
};
}
System.register = register;
function registerExternal(name, mod) {
modules[name] = mod;
}
System.registerExternal = registerExternal;
function require(name) {
if (name in modules)
return modules[name];
return create(name);
}
System.require = require;
function _import(name) {
var result = require(name);
return Promise.resolve(result);
}
window.require = require;
function create(name) {
if (!(name in registers))
throw new Error("Cannot resolve '" + name + "'");
var register = registers[name];
var result = {};
modules[name] = result;
function exportImpl(n, impl) {
result[n] = impl;
}
var innerFactory = register.factory(exportImpl, { id: name, "import": _import });
for (var index = 0; index < register.deps.length; index++) {
var dependency = register.deps[index];
innerFactory.setters[index](require(dependency));
}
innerFactory.execute();
return result;
}
})(System || (System = {}));