assemblerjs 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +26 -0
- package/dist/index11.js +2 -2
- package/dist/index11.mjs +2 -2
- package/dist/index13.js +2 -2
- package/dist/index13.mjs +2 -2
- package/dist/index16.js +1 -1
- package/dist/index16.mjs +1 -1
- package/dist/index17.js +1 -1
- package/dist/index17.mjs +1 -1
- package/dist/index18.js +1 -1
- package/dist/index18.mjs +1 -1
- package/dist/index19.js +1 -1
- package/dist/index19.mjs +1 -1
- package/dist/index2.js +2 -2
- package/dist/index2.mjs +2 -2
- package/dist/index20.js +1 -1
- package/dist/index20.mjs +1 -1
- package/dist/index21.js +1 -1
- package/dist/index21.mjs +1 -1
- package/dist/index22.js +2 -2
- package/dist/index22.mjs +2 -2
- package/dist/index23.js +2 -2
- package/dist/index23.mjs +2 -2
- package/dist/index24.js +2 -2
- package/dist/index24.mjs +2 -2
- package/dist/index25.js +1 -1
- package/dist/index25.mjs +1 -1
- package/dist/index26.js +1 -1
- package/dist/index26.mjs +1 -1
- package/dist/index27.js +1 -1
- package/dist/index27.mjs +1 -1
- package/dist/index29.js +15 -38
- package/dist/index29.mjs +12 -37
- package/dist/index3.js +1 -1
- package/dist/index3.mjs +1 -1
- package/dist/index30.js +100 -58
- package/dist/index30.mjs +98 -58
- package/dist/index31.js +36 -27
- package/dist/index31.mjs +35 -27
- package/dist/index32.js +16 -59
- package/dist/index32.mjs +16 -59
- package/dist/index33.js +65 -28
- package/dist/index33.mjs +65 -28
- package/dist/index34.js +28 -28
- package/dist/index34.mjs +28 -28
- package/dist/index35.js +77 -15
- package/dist/index35.mjs +77 -12
- package/dist/index36.js +38 -104
- package/dist/index36.mjs +38 -102
- package/dist/index37.js +28 -102
- package/dist/index37.mjs +28 -102
- package/dist/index38.js +128 -23
- package/dist/index38.mjs +128 -23
- package/dist/index39.js +101 -18
- package/dist/index39.mjs +101 -18
- package/dist/index4.js +21 -8
- package/dist/index4.mjs +21 -8
- package/dist/index40.js +25 -25
- package/dist/index40.mjs +25 -24
- package/dist/index41.js +44 -18
- package/dist/index41.mjs +44 -17
- package/dist/index42.js +18 -44
- package/dist/index42.mjs +17 -44
- package/dist/index43.js +26 -191
- package/dist/index43.mjs +25 -191
- package/dist/index44.js +192 -940
- package/dist/index44.mjs +192 -940
- package/dist/index45.js +942 -2
- package/dist/index45.mjs +942 -2
- package/dist/index46.js +2 -2
- package/dist/index46.mjs +2 -2
- package/dist/index47.js +2 -14
- package/dist/index47.mjs +2 -14
- package/dist/index48.js +9 -34
- package/dist/index48.mjs +9 -34
- package/dist/index49.js +32 -55
- package/dist/index49.mjs +32 -54
- package/dist/index50.js +67 -0
- package/dist/index50.mjs +62 -0
- package/package.json +1 -1
package/dist/index36.js
CHANGED
|
@@ -2,112 +2,46 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
5
|
+
const hookManager = require('./index35.js');
|
|
6
|
+
const debugLogger = require('./index38.js');
|
|
7
|
+
const schema = require('./index30.js');
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
class AssemblerBuilder {
|
|
10
|
+
build(t, a) {
|
|
11
|
+
const n = debugLogger.DebugLogger.getInstance();
|
|
12
|
+
schema.setDefinitionValue('singleton', true, t);
|
|
13
|
+
n.logPhaseStart('registration');
|
|
14
|
+
const r = this.assembler.register([
|
|
15
|
+
t
|
|
16
|
+
]);
|
|
17
|
+
n.logPhaseEnd('registration');
|
|
18
|
+
n.logPhaseStart('resolution');
|
|
19
|
+
const i = this.assembler.require(r.identifier, a);
|
|
20
|
+
n.logPhaseEnd('resolution');
|
|
21
|
+
const l = this.assembler.hookManager.getCache().find((e)=>e.instance === i);
|
|
22
|
+
if (!l) {
|
|
23
|
+
throw new Error('Root instance not found in assemblages cache.');
|
|
17
24
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>{
|
|
35
|
-
if (!Array.isArray(r) || r.length !== 2) {
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
const e = r[1];
|
|
39
|
-
return typeof e !== 'undefined';
|
|
40
|
-
}),
|
|
41
|
-
throw: ()=>{
|
|
42
|
-
throw new Error(`'use' property must be an array of tuples of length 2 with [identifier, instance | factory].`);
|
|
43
|
-
},
|
|
44
|
-
transform: (r)=>r
|
|
45
|
-
},
|
|
46
|
-
engage: {
|
|
47
|
-
test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>Array.isArray(r) && r.length >= 1 && r.length <= 3),
|
|
48
|
-
throw: ()=>{
|
|
49
|
-
throw new Error(`'engage' property must be an array of tuples of length 1, 2 or 3.`);
|
|
50
|
-
},
|
|
51
|
-
transform: (r)=>r
|
|
52
|
-
},
|
|
53
|
-
tags: {
|
|
54
|
-
test: (r)=>typeof r === 'undefined' || typeof r === 'string' || Array.isArray(r) && r.every((r)=>typeof r === 'string'),
|
|
55
|
-
throw: ()=>{
|
|
56
|
-
throw new Error(`'tags' property must be a string or an array of strings.`);
|
|
57
|
-
},
|
|
58
|
-
transform: (r)=>typeof r === 'string' ? [
|
|
59
|
-
r
|
|
60
|
-
] : r
|
|
61
|
-
},
|
|
62
|
-
metadata: {
|
|
63
|
-
test: (r)=>(typeof r === 'object' || typeof r === 'undefined') && !Array.isArray(r),
|
|
64
|
-
throw: ()=>{
|
|
65
|
-
throw new Error(`'metadata' property must be of type 'object' or 'undefined'.`);
|
|
66
|
-
},
|
|
67
|
-
transform: (r)=>r
|
|
68
|
-
},
|
|
69
|
-
global: {
|
|
70
|
-
test: (r)=>(typeof r === 'object' || typeof r === 'undefined') && !Array.isArray(r),
|
|
71
|
-
throw: ()=>{
|
|
72
|
-
throw new Error(`'global' property must be of type 'object' or 'undefined'.`);
|
|
73
|
-
},
|
|
74
|
-
transform: (r)=>r
|
|
25
|
+
const h = this.assembler.hookManager.getCache().indexOf(l);
|
|
26
|
+
this.assembler.hookManager.getCache().splice(h, 1);
|
|
27
|
+
n.logPhaseStart('hooks:onInit');
|
|
28
|
+
this.assembler.hookManager.callInitHooks(this.assembler.publicContext);
|
|
29
|
+
const c = a ? {
|
|
30
|
+
...r.configuration,
|
|
31
|
+
...a
|
|
32
|
+
} : r.configuration;
|
|
33
|
+
hookManager.HookManager.callHookImmediate(i, 'onInit', this.assembler.publicContext, c);
|
|
34
|
+
n.logPhaseEnd('hooks:onInit');
|
|
35
|
+
n.logPhaseStart('hooks:onInited');
|
|
36
|
+
this.assembler.hookManager.callInitedHooks(this.assembler.publicContext);
|
|
37
|
+
hookManager.HookManager.callHookImmediate(i, 'onInited', this.assembler.publicContext, c);
|
|
38
|
+
n.logPhaseEnd('hooks:onInited');
|
|
39
|
+
this.assembler.hookManager.clearCache();
|
|
40
|
+
return i;
|
|
75
41
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const e = {
|
|
79
|
-
...r
|
|
80
|
-
};
|
|
81
|
-
for(const r in e){
|
|
82
|
-
if (!Object.keys(n).includes(r)) {
|
|
83
|
-
throw new Error(`Property '${r}' is not a valid assemblage definition property.`);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
for(const r in n){
|
|
87
|
-
const t = n[r].test;
|
|
88
|
-
const o = n[r].throw;
|
|
89
|
-
const s = n[r].transform;
|
|
90
|
-
if (!t(e[r])) {
|
|
91
|
-
o();
|
|
92
|
-
}
|
|
93
|
-
e[r] = s(e[r]);
|
|
94
|
-
}
|
|
95
|
-
return e;
|
|
96
|
-
};
|
|
97
|
-
const getDefinition = (e)=>{
|
|
98
|
-
if (!helpers.isAssemblage(e)) {
|
|
99
|
-
throw new Error(`Class '${e.name}' is not an assemblage or transversal.`);
|
|
42
|
+
constructor(e){
|
|
43
|
+
this.assembler = e;
|
|
100
44
|
}
|
|
101
|
-
|
|
102
|
-
};
|
|
103
|
-
const setDefinitionValue = (t, o, n)=>{
|
|
104
|
-
const s = getDefinition(n);
|
|
105
|
-
s[t] = o;
|
|
106
|
-
const a = validateDefinition(s);
|
|
107
|
-
reflection.defineCustomMetadata(constants.ReflectValue.AssemblageDefinition, a, n);
|
|
108
|
-
return a;
|
|
109
|
-
};
|
|
45
|
+
}
|
|
110
46
|
|
|
111
|
-
exports.
|
|
112
|
-
exports.setDefinitionValue = setDefinitionValue;
|
|
113
|
-
exports.validateDefinition = validateDefinition;
|
|
47
|
+
exports.AssemblerBuilder = AssemblerBuilder;
|
package/dist/index36.mjs
CHANGED
|
@@ -1,107 +1,43 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { HookManager } from './index35.mjs';
|
|
2
|
+
import { DebugLogger } from './index38.mjs';
|
|
3
|
+
import { setDefinitionValue } from './index30.mjs';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
class AssemblerBuilder {
|
|
6
|
+
build(t, a) {
|
|
7
|
+
const n = DebugLogger.getInstance();
|
|
8
|
+
setDefinitionValue('singleton', true, t);
|
|
9
|
+
n.logPhaseStart('registration');
|
|
10
|
+
const r = this.assembler.register([
|
|
11
|
+
t
|
|
12
|
+
]);
|
|
13
|
+
n.logPhaseEnd('registration');
|
|
14
|
+
n.logPhaseStart('resolution');
|
|
15
|
+
const i = this.assembler.require(r.identifier, a);
|
|
16
|
+
n.logPhaseEnd('resolution');
|
|
17
|
+
const l = this.assembler.hookManager.getCache().find((e)=>e.instance === i);
|
|
18
|
+
if (!l) {
|
|
19
|
+
throw new Error('Root instance not found in assemblages cache.');
|
|
13
20
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>{
|
|
31
|
-
if (!Array.isArray(r) || r.length !== 2) {
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
const e = r[1];
|
|
35
|
-
return typeof e !== 'undefined';
|
|
36
|
-
}),
|
|
37
|
-
throw: ()=>{
|
|
38
|
-
throw new Error(`'use' property must be an array of tuples of length 2 with [identifier, instance | factory].`);
|
|
39
|
-
},
|
|
40
|
-
transform: (r)=>r
|
|
41
|
-
},
|
|
42
|
-
engage: {
|
|
43
|
-
test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>Array.isArray(r) && r.length >= 1 && r.length <= 3),
|
|
44
|
-
throw: ()=>{
|
|
45
|
-
throw new Error(`'engage' property must be an array of tuples of length 1, 2 or 3.`);
|
|
46
|
-
},
|
|
47
|
-
transform: (r)=>r
|
|
48
|
-
},
|
|
49
|
-
tags: {
|
|
50
|
-
test: (r)=>typeof r === 'undefined' || typeof r === 'string' || Array.isArray(r) && r.every((r)=>typeof r === 'string'),
|
|
51
|
-
throw: ()=>{
|
|
52
|
-
throw new Error(`'tags' property must be a string or an array of strings.`);
|
|
53
|
-
},
|
|
54
|
-
transform: (r)=>typeof r === 'string' ? [
|
|
55
|
-
r
|
|
56
|
-
] : r
|
|
57
|
-
},
|
|
58
|
-
metadata: {
|
|
59
|
-
test: (r)=>(typeof r === 'object' || typeof r === 'undefined') && !Array.isArray(r),
|
|
60
|
-
throw: ()=>{
|
|
61
|
-
throw new Error(`'metadata' property must be of type 'object' or 'undefined'.`);
|
|
62
|
-
},
|
|
63
|
-
transform: (r)=>r
|
|
64
|
-
},
|
|
65
|
-
global: {
|
|
66
|
-
test: (r)=>(typeof r === 'object' || typeof r === 'undefined') && !Array.isArray(r),
|
|
67
|
-
throw: ()=>{
|
|
68
|
-
throw new Error(`'global' property must be of type 'object' or 'undefined'.`);
|
|
69
|
-
},
|
|
70
|
-
transform: (r)=>r
|
|
21
|
+
const h = this.assembler.hookManager.getCache().indexOf(l);
|
|
22
|
+
this.assembler.hookManager.getCache().splice(h, 1);
|
|
23
|
+
n.logPhaseStart('hooks:onInit');
|
|
24
|
+
this.assembler.hookManager.callInitHooks(this.assembler.publicContext);
|
|
25
|
+
const c = a ? {
|
|
26
|
+
...r.configuration,
|
|
27
|
+
...a
|
|
28
|
+
} : r.configuration;
|
|
29
|
+
HookManager.callHookImmediate(i, 'onInit', this.assembler.publicContext, c);
|
|
30
|
+
n.logPhaseEnd('hooks:onInit');
|
|
31
|
+
n.logPhaseStart('hooks:onInited');
|
|
32
|
+
this.assembler.hookManager.callInitedHooks(this.assembler.publicContext);
|
|
33
|
+
HookManager.callHookImmediate(i, 'onInited', this.assembler.publicContext, c);
|
|
34
|
+
n.logPhaseEnd('hooks:onInited');
|
|
35
|
+
this.assembler.hookManager.clearCache();
|
|
36
|
+
return i;
|
|
71
37
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const e = {
|
|
75
|
-
...r
|
|
76
|
-
};
|
|
77
|
-
for(const r in e){
|
|
78
|
-
if (!Object.keys(n).includes(r)) {
|
|
79
|
-
throw new Error(`Property '${r}' is not a valid assemblage definition property.`);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
for(const r in n){
|
|
83
|
-
const t = n[r].test;
|
|
84
|
-
const o = n[r].throw;
|
|
85
|
-
const s = n[r].transform;
|
|
86
|
-
if (!t(e[r])) {
|
|
87
|
-
o();
|
|
88
|
-
}
|
|
89
|
-
e[r] = s(e[r]);
|
|
90
|
-
}
|
|
91
|
-
return e;
|
|
92
|
-
};
|
|
93
|
-
const getDefinition = (e)=>{
|
|
94
|
-
if (!isAssemblage(e)) {
|
|
95
|
-
throw new Error(`Class '${e.name}' is not an assemblage or transversal.`);
|
|
38
|
+
constructor(e){
|
|
39
|
+
this.assembler = e;
|
|
96
40
|
}
|
|
97
|
-
|
|
98
|
-
};
|
|
99
|
-
const setDefinitionValue = (t, o, n)=>{
|
|
100
|
-
const s = getDefinition(n);
|
|
101
|
-
s[t] = o;
|
|
102
|
-
const a = validateDefinition(s);
|
|
103
|
-
defineCustomMetadata(ReflectValue.AssemblageDefinition, a, n);
|
|
104
|
-
return a;
|
|
105
|
-
};
|
|
41
|
+
}
|
|
106
42
|
|
|
107
|
-
export {
|
|
43
|
+
export { AssemblerBuilder };
|
package/dist/index37.js
CHANGED
|
@@ -2,110 +2,36 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (!r && !o) return false;
|
|
20
|
-
const c = affect.getAffectedMethods(a, t);
|
|
21
|
-
return c.length > 0;
|
|
22
|
-
});
|
|
23
|
-
if (s.length === 0 && !f) {
|
|
24
|
-
return n;
|
|
25
|
-
}
|
|
26
|
-
return new Proxy(n, {
|
|
27
|
-
get (t, e, n) {
|
|
28
|
-
const r = Reflect.get(t, e, n);
|
|
29
|
-
if (typeof r !== 'function') {
|
|
30
|
-
return r;
|
|
31
|
-
}
|
|
32
|
-
return function(...n) {
|
|
33
|
-
const o = String(e);
|
|
34
|
-
const a = {
|
|
35
|
-
target: t,
|
|
36
|
-
methodName: o,
|
|
37
|
-
args: n
|
|
38
|
-
};
|
|
39
|
-
const f = c.getAdvicesForJoinPoint(a, s, t, e);
|
|
40
|
-
return TransversalWeaver.executeAdviceChain(f, r, t, n, a);
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
static executeAdviceChain(t, e, n, r, o) {
|
|
46
|
-
const c = t.filter((t)=>t.type === 'before');
|
|
47
|
-
const s = t.filter((t)=>t.type === 'around');
|
|
48
|
-
const a = t.filter((t)=>t.type === 'after');
|
|
49
|
-
try {
|
|
50
|
-
for (const t of c){
|
|
51
|
-
const e = {
|
|
52
|
-
...o,
|
|
53
|
-
config: t.config
|
|
54
|
-
};
|
|
55
|
-
t.method.call(t.transversalInstance, e);
|
|
56
|
-
}
|
|
57
|
-
let t;
|
|
58
|
-
if (s.length > 0) {
|
|
59
|
-
t = this.buildAroundChain(s, e, n, r, o);
|
|
60
|
-
} else {
|
|
61
|
-
t = e.apply(n, r);
|
|
62
|
-
}
|
|
63
|
-
if (t instanceof Promise) {
|
|
64
|
-
return t.then((t)=>{
|
|
65
|
-
for (const e of a){
|
|
66
|
-
const n = {
|
|
67
|
-
...o,
|
|
68
|
-
result: t
|
|
69
|
-
};
|
|
70
|
-
e.method.call(e.transversalInstance, n);
|
|
71
|
-
}
|
|
72
|
-
return t;
|
|
73
|
-
}).catch((t)=>{
|
|
74
|
-
o.error = t;
|
|
75
|
-
throw t;
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
for (const e of a){
|
|
79
|
-
const n = {
|
|
80
|
-
...o,
|
|
81
|
-
result: t,
|
|
82
|
-
config: e.config
|
|
83
|
-
};
|
|
84
|
-
e.method.call(e.transversalInstance, n);
|
|
85
|
-
}
|
|
86
|
-
return t;
|
|
87
|
-
} catch (t) {
|
|
88
|
-
o.error = t;
|
|
89
|
-
throw t;
|
|
90
|
-
}
|
|
5
|
+
class ContextProvider {
|
|
6
|
+
createPublicContext() {
|
|
7
|
+
return {
|
|
8
|
+
has: this.assembler.has.bind(this.assembler),
|
|
9
|
+
require: this.assembler.require.bind(this.assembler),
|
|
10
|
+
concrete: this.assembler.concrete.bind(this.assembler),
|
|
11
|
+
tagged: this.assembler.tagged.bind(this.assembler),
|
|
12
|
+
dispose: this.assembler.dispose.bind(this.assembler),
|
|
13
|
+
global: this.assembler.global.bind(this.assembler),
|
|
14
|
+
on: this.assembler.on.bind(this.assembler),
|
|
15
|
+
once: this.assembler.once.bind(this.assembler),
|
|
16
|
+
off: this.assembler.off.bind(this.assembler),
|
|
17
|
+
events: this.assembler.channels
|
|
18
|
+
};
|
|
91
19
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
return e.method.call(e.transversalInstance, n);
|
|
103
|
-
} else {
|
|
104
|
-
return e.apply(n, r);
|
|
105
|
-
}
|
|
20
|
+
createPrivateContext(s) {
|
|
21
|
+
return {
|
|
22
|
+
...s,
|
|
23
|
+
register: this.assembler.register.bind(this.assembler),
|
|
24
|
+
use: this.assembler.use.bind(this.assembler),
|
|
25
|
+
addGlobal: this.assembler.addGlobal.bind(this.assembler),
|
|
26
|
+
prepareInitHook: this.assembler.prepareInitHook.bind(this.assembler),
|
|
27
|
+
emit: this.assembler.emit.bind(this.assembler),
|
|
28
|
+
addChannels: this.assembler.addChannels.bind(this.assembler),
|
|
29
|
+
removeChannels: this.assembler.removeChannels.bind(this.assembler)
|
|
106
30
|
};
|
|
107
|
-
|
|
31
|
+
}
|
|
32
|
+
constructor(s){
|
|
33
|
+
this.assembler = s;
|
|
108
34
|
}
|
|
109
35
|
}
|
|
110
36
|
|
|
111
|
-
exports.
|
|
37
|
+
exports.ContextProvider = ContextProvider;
|
package/dist/index37.mjs
CHANGED
|
@@ -1,107 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
if (!r && !o) return false;
|
|
16
|
-
const c = getAffectedMethods(a, t);
|
|
17
|
-
return c.length > 0;
|
|
18
|
-
});
|
|
19
|
-
if (s.length === 0 && !f) {
|
|
20
|
-
return n;
|
|
21
|
-
}
|
|
22
|
-
return new Proxy(n, {
|
|
23
|
-
get (t, e, n) {
|
|
24
|
-
const r = Reflect.get(t, e, n);
|
|
25
|
-
if (typeof r !== 'function') {
|
|
26
|
-
return r;
|
|
27
|
-
}
|
|
28
|
-
return function(...n) {
|
|
29
|
-
const o = String(e);
|
|
30
|
-
const a = {
|
|
31
|
-
target: t,
|
|
32
|
-
methodName: o,
|
|
33
|
-
args: n
|
|
34
|
-
};
|
|
35
|
-
const f = c.getAdvicesForJoinPoint(a, s, t, e);
|
|
36
|
-
return TransversalWeaver.executeAdviceChain(f, r, t, n, a);
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
static executeAdviceChain(t, e, n, r, o) {
|
|
42
|
-
const c = t.filter((t)=>t.type === 'before');
|
|
43
|
-
const s = t.filter((t)=>t.type === 'around');
|
|
44
|
-
const a = t.filter((t)=>t.type === 'after');
|
|
45
|
-
try {
|
|
46
|
-
for (const t of c){
|
|
47
|
-
const e = {
|
|
48
|
-
...o,
|
|
49
|
-
config: t.config
|
|
50
|
-
};
|
|
51
|
-
t.method.call(t.transversalInstance, e);
|
|
52
|
-
}
|
|
53
|
-
let t;
|
|
54
|
-
if (s.length > 0) {
|
|
55
|
-
t = this.buildAroundChain(s, e, n, r, o);
|
|
56
|
-
} else {
|
|
57
|
-
t = e.apply(n, r);
|
|
58
|
-
}
|
|
59
|
-
if (t instanceof Promise) {
|
|
60
|
-
return t.then((t)=>{
|
|
61
|
-
for (const e of a){
|
|
62
|
-
const n = {
|
|
63
|
-
...o,
|
|
64
|
-
result: t
|
|
65
|
-
};
|
|
66
|
-
e.method.call(e.transversalInstance, n);
|
|
67
|
-
}
|
|
68
|
-
return t;
|
|
69
|
-
}).catch((t)=>{
|
|
70
|
-
o.error = t;
|
|
71
|
-
throw t;
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
for (const e of a){
|
|
75
|
-
const n = {
|
|
76
|
-
...o,
|
|
77
|
-
result: t,
|
|
78
|
-
config: e.config
|
|
79
|
-
};
|
|
80
|
-
e.method.call(e.transversalInstance, n);
|
|
81
|
-
}
|
|
82
|
-
return t;
|
|
83
|
-
} catch (t) {
|
|
84
|
-
o.error = t;
|
|
85
|
-
throw t;
|
|
86
|
-
}
|
|
1
|
+
class ContextProvider {
|
|
2
|
+
createPublicContext() {
|
|
3
|
+
return {
|
|
4
|
+
has: this.assembler.has.bind(this.assembler),
|
|
5
|
+
require: this.assembler.require.bind(this.assembler),
|
|
6
|
+
concrete: this.assembler.concrete.bind(this.assembler),
|
|
7
|
+
tagged: this.assembler.tagged.bind(this.assembler),
|
|
8
|
+
dispose: this.assembler.dispose.bind(this.assembler),
|
|
9
|
+
global: this.assembler.global.bind(this.assembler),
|
|
10
|
+
on: this.assembler.on.bind(this.assembler),
|
|
11
|
+
once: this.assembler.once.bind(this.assembler),
|
|
12
|
+
off: this.assembler.off.bind(this.assembler),
|
|
13
|
+
events: this.assembler.channels
|
|
14
|
+
};
|
|
87
15
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
return e.method.call(e.transversalInstance, n);
|
|
99
|
-
} else {
|
|
100
|
-
return e.apply(n, r);
|
|
101
|
-
}
|
|
16
|
+
createPrivateContext(s) {
|
|
17
|
+
return {
|
|
18
|
+
...s,
|
|
19
|
+
register: this.assembler.register.bind(this.assembler),
|
|
20
|
+
use: this.assembler.use.bind(this.assembler),
|
|
21
|
+
addGlobal: this.assembler.addGlobal.bind(this.assembler),
|
|
22
|
+
prepareInitHook: this.assembler.prepareInitHook.bind(this.assembler),
|
|
23
|
+
emit: this.assembler.emit.bind(this.assembler),
|
|
24
|
+
addChannels: this.assembler.addChannels.bind(this.assembler),
|
|
25
|
+
removeChannels: this.assembler.removeChannels.bind(this.assembler)
|
|
102
26
|
};
|
|
103
|
-
|
|
27
|
+
}
|
|
28
|
+
constructor(s){
|
|
29
|
+
this.assembler = s;
|
|
104
30
|
}
|
|
105
31
|
}
|
|
106
32
|
|
|
107
|
-
export {
|
|
33
|
+
export { ContextProvider };
|