-
Notifications
You must be signed in to change notification settings - Fork 0
/
pakmanaged.js
79 lines (62 loc) · 1.58 KB
/
pakmanaged.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
var global = Function("return this;")();
/*jshint strict:true node:true es5:true onevar:true laxcomma:true laxbreak:true eqeqeq:true immed:true latedef:true*/
(function () {
"use strict";
var oldRequire = require
, modules = {}
;
function newRequire(modulename) {
var err
, mod
, metamod
;
try {
mod = oldRequire(modulename);
} catch(e) {
err = e;
}
if (mod) {
return mod;
}
metamod = modules[modulename];
if (metamod) {
mod = metamod();
return mod;
}
// make it possible to require 'process', etc
mod = global[modulename];
if (mod) {
return mod;
}
console.error(modulename);
throw err;
}
function provide(modulename, factory) {
var modReal
;
function metamod() {
if (modReal) {
return modReal;
}
if (!factory.__pakmanager_factory__) {
modReal = factory;
return factory;
}
if (factory.__factoryIsResolving) {
console.error('Your circular dependencies are too powerful!');
return factory.__moduleExports;
}
factory.__factoryIsResolving = true;
factory.__moduleExports = {};
modReal = factory(factory.__moduleExports);
factory.__factoryIsResolving = false;
return modReal;
}
modules[modulename] = metamod;
// somewhat of a dirty hack since I don't have a plug for loading the "main" module otherwise
modules['pakmanager.main'] = metamod;
}
require = newRequire;
global.require = newRequire;
global.provide = provide;
}());