assemblerjs 1.1.1 → 1.1.2
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 +27 -8
- 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/index29.js +38 -15
- package/dist/index29.mjs +37 -12
- package/dist/index3.js +1 -1
- package/dist/index3.mjs +1 -1
- package/dist/index30.js +58 -94
- package/dist/index30.mjs +58 -92
- package/dist/index31.js +25 -16
- package/dist/index31.mjs +25 -16
- package/dist/index32.js +55 -53
- package/dist/index32.mjs +55 -53
- package/dist/index33.js +28 -28
- package/dist/index33.mjs +28 -28
- package/dist/index34.js +28 -62
- package/dist/index34.mjs +28 -62
- package/dist/index35.js +17 -31
- package/dist/index35.mjs +14 -31
- package/dist/index36.js +105 -29
- package/dist/index36.mjs +103 -29
- package/dist/index37.js +100 -35
- package/dist/index37.mjs +100 -34
- package/dist/index38.js +24 -101
- package/dist/index38.mjs +24 -101
- package/dist/index39.js +18 -24
- package/dist/index39.mjs +18 -24
- package/dist/index4.js +5 -5
- package/dist/index4.mjs +5 -5
- package/dist/index40.js +29 -49
- package/dist/index40.mjs +28 -49
- package/dist/index41.js +18 -4
- package/dist/index41.mjs +18 -5
- package/dist/index42.js +49 -29
- package/dist/index42.mjs +49 -28
- package/dist/index43.js +92 -70
- package/dist/index43.mjs +92 -70
- package/dist/index47.js +1 -1
- package/dist/index47.mjs +1 -1
- package/dist/index48.js +18 -7
- package/dist/index48.mjs +18 -7
- package/dist/index49.js +1 -1
- package/dist/index49.mjs +1 -1
- package/package.json +1 -1
package/dist/index33.js
CHANGED
|
@@ -2,36 +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
|
-
throw new Error(`Injected object with identifier '${String(e)}' has not been registered.`);
|
|
19
|
-
}
|
|
20
|
-
return this.objects.get(e);
|
|
21
|
-
}
|
|
22
|
-
addGlobal(e, t) {
|
|
23
|
-
if (this.globals.has(e)) {
|
|
24
|
-
throw new Error(`Global value with key '${e}' has already been registered.`);
|
|
5
|
+
const hookManager = require('./index32.js');
|
|
6
|
+
const schema = require('./index36.js');
|
|
7
|
+
|
|
8
|
+
class AssemblerBuilder {
|
|
9
|
+
build(t, o) {
|
|
10
|
+
schema.setDefinitionValue('singleton', true, t);
|
|
11
|
+
const a = this.assembler.register([
|
|
12
|
+
t
|
|
13
|
+
]);
|
|
14
|
+
const r = this.assembler.require(a.identifier, o);
|
|
15
|
+
const i = this.assembler.hookManager.getCache().find((e)=>e.instance === r);
|
|
16
|
+
if (!i) {
|
|
17
|
+
throw new Error('Root instance not found in assemblages cache.');
|
|
25
18
|
}
|
|
26
|
-
this.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
19
|
+
const n = this.assembler.hookManager.getCache().indexOf(i);
|
|
20
|
+
this.assembler.hookManager.getCache().splice(n, 1);
|
|
21
|
+
this.assembler.hookManager.callInitHooks(this.assembler.publicContext);
|
|
22
|
+
const l = o ? {
|
|
23
|
+
...a.configuration,
|
|
24
|
+
...o
|
|
25
|
+
} : a.configuration;
|
|
26
|
+
hookManager.HookManager.callHookImmediate(r, 'onInit', this.assembler.publicContext, l);
|
|
27
|
+
this.assembler.hookManager.callInitedHooks(this.assembler.publicContext);
|
|
28
|
+
hookManager.HookManager.callHookImmediate(r, 'onInited', this.assembler.publicContext, l);
|
|
29
|
+
this.assembler.hookManager.clearCache();
|
|
30
|
+
return r;
|
|
30
31
|
}
|
|
31
|
-
constructor(){
|
|
32
|
-
this.
|
|
33
|
-
this.globals = new Map();
|
|
32
|
+
constructor(e){
|
|
33
|
+
this.assembler = e;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
exports.
|
|
37
|
+
exports.AssemblerBuilder = AssemblerBuilder;
|
package/dist/index33.mjs
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
throw new Error(`Injected object with identifier '${String(e)}' has not been registered.`);
|
|
15
|
-
}
|
|
16
|
-
return this.objects.get(e);
|
|
17
|
-
}
|
|
18
|
-
addGlobal(e, t) {
|
|
19
|
-
if (this.globals.has(e)) {
|
|
20
|
-
throw new Error(`Global value with key '${e}' has already been registered.`);
|
|
1
|
+
import { HookManager } from './index32.mjs';
|
|
2
|
+
import { setDefinitionValue } from './index36.mjs';
|
|
3
|
+
|
|
4
|
+
class AssemblerBuilder {
|
|
5
|
+
build(t, o) {
|
|
6
|
+
setDefinitionValue('singleton', true, t);
|
|
7
|
+
const a = this.assembler.register([
|
|
8
|
+
t
|
|
9
|
+
]);
|
|
10
|
+
const r = this.assembler.require(a.identifier, o);
|
|
11
|
+
const i = this.assembler.hookManager.getCache().find((e)=>e.instance === r);
|
|
12
|
+
if (!i) {
|
|
13
|
+
throw new Error('Root instance not found in assemblages cache.');
|
|
21
14
|
}
|
|
22
|
-
this.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
15
|
+
const n = this.assembler.hookManager.getCache().indexOf(i);
|
|
16
|
+
this.assembler.hookManager.getCache().splice(n, 1);
|
|
17
|
+
this.assembler.hookManager.callInitHooks(this.assembler.publicContext);
|
|
18
|
+
const l = o ? {
|
|
19
|
+
...a.configuration,
|
|
20
|
+
...o
|
|
21
|
+
} : a.configuration;
|
|
22
|
+
HookManager.callHookImmediate(r, 'onInit', this.assembler.publicContext, l);
|
|
23
|
+
this.assembler.hookManager.callInitedHooks(this.assembler.publicContext);
|
|
24
|
+
HookManager.callHookImmediate(r, 'onInited', this.assembler.publicContext, l);
|
|
25
|
+
this.assembler.hookManager.clearCache();
|
|
26
|
+
return r;
|
|
26
27
|
}
|
|
27
|
-
constructor(){
|
|
28
|
-
this.
|
|
29
|
-
this.globals = new Map();
|
|
28
|
+
constructor(e){
|
|
29
|
+
this.assembler = e;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
export {
|
|
33
|
+
export { AssemblerBuilder };
|
package/dist/index34.js
CHANGED
|
@@ -2,70 +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
|
-
}
|
|
20
|
-
callInitedHooks(e) {
|
|
21
|
-
for (const t of [
|
|
22
|
-
...this.initCache
|
|
23
|
-
].reverse()){
|
|
24
|
-
HookManager.callHookImmediate(t.instance, 'onInited', e, t.configuration);
|
|
25
|
-
}
|
|
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
|
+
};
|
|
26
19
|
}
|
|
27
|
-
|
|
28
|
-
|
|
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)
|
|
30
|
+
};
|
|
29
31
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
constructor(){
|
|
34
|
-
this.initCache = [];
|
|
32
|
+
constructor(s){
|
|
33
|
+
this.assembler = s;
|
|
35
34
|
}
|
|
36
35
|
}
|
|
37
|
-
HookManager.callHook = (t, i, o, n)=>{
|
|
38
|
-
return new Promise((a, c)=>{
|
|
39
|
-
const r = t[i];
|
|
40
|
-
if (r) {
|
|
41
|
-
if (core.isAsync(r)) {
|
|
42
|
-
r.bind(t)(o, n).then(()=>{
|
|
43
|
-
a();
|
|
44
|
-
}).catch((e)=>{
|
|
45
|
-
c(e);
|
|
46
|
-
});
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
try {
|
|
50
|
-
r.bind(t)(o, n);
|
|
51
|
-
a();
|
|
52
|
-
} catch (e) {
|
|
53
|
-
c(e);
|
|
54
|
-
}
|
|
55
|
-
} else {
|
|
56
|
-
a();
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
};
|
|
60
|
-
HookManager.callHookImmediate = (t, i, o, n)=>{
|
|
61
|
-
const a = t[i];
|
|
62
|
-
if (a) {
|
|
63
|
-
if (core.isAsync(a)) {
|
|
64
|
-
a.bind(t)(o, n).catch(()=>{});
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
a.bind(t)(o, n);
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
36
|
|
|
71
|
-
exports.
|
|
37
|
+
exports.ContextProvider = ContextProvider;
|
package/dist/index34.mjs
CHANGED
|
@@ -1,67 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
callInitedHooks(e) {
|
|
17
|
-
for (const t of [
|
|
18
|
-
...this.initCache
|
|
19
|
-
].reverse()){
|
|
20
|
-
HookManager.callHookImmediate(t.instance, 'onInited', e, t.configuration);
|
|
21
|
-
}
|
|
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
|
+
};
|
|
22
15
|
}
|
|
23
|
-
|
|
24
|
-
|
|
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)
|
|
26
|
+
};
|
|
25
27
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
constructor(){
|
|
30
|
-
this.initCache = [];
|
|
28
|
+
constructor(s){
|
|
29
|
+
this.assembler = s;
|
|
31
30
|
}
|
|
32
31
|
}
|
|
33
|
-
HookManager.callHook = (t, i, o, n)=>{
|
|
34
|
-
return new Promise((a, c)=>{
|
|
35
|
-
const r = t[i];
|
|
36
|
-
if (r) {
|
|
37
|
-
if (isAsync(r)) {
|
|
38
|
-
r.bind(t)(o, n).then(()=>{
|
|
39
|
-
a();
|
|
40
|
-
}).catch((e)=>{
|
|
41
|
-
c(e);
|
|
42
|
-
});
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
try {
|
|
46
|
-
r.bind(t)(o, n);
|
|
47
|
-
a();
|
|
48
|
-
} catch (e) {
|
|
49
|
-
c(e);
|
|
50
|
-
}
|
|
51
|
-
} else {
|
|
52
|
-
a();
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
};
|
|
56
|
-
HookManager.callHookImmediate = (t, i, o, n)=>{
|
|
57
|
-
const a = t[i];
|
|
58
|
-
if (a) {
|
|
59
|
-
if (isAsync(a)) {
|
|
60
|
-
a.bind(t)(o, n).catch(()=>{});
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
a.bind(t)(o, n);
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
32
|
|
|
67
|
-
export {
|
|
33
|
+
export { ContextProvider };
|
package/dist/index35.js
CHANGED
|
@@ -2,36 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
|
-
const
|
|
6
|
-
const schema = require('./index30.js');
|
|
5
|
+
const constants = require('./index28.js');
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
this.assembler.hookManager.getCache().splice(n, 1);
|
|
21
|
-
this.assembler.hookManager.callInitHooks(this.assembler.publicContext);
|
|
22
|
-
const l = o ? {
|
|
23
|
-
...a.configuration,
|
|
24
|
-
...o
|
|
25
|
-
} : a.configuration;
|
|
26
|
-
hookManager.HookManager.callHookImmediate(r, 'onInit', this.assembler.publicContext, l);
|
|
27
|
-
this.assembler.hookManager.callInitedHooks(this.assembler.publicContext);
|
|
28
|
-
hookManager.HookManager.callHookImmediate(r, 'onInited', this.assembler.publicContext, l);
|
|
29
|
-
this.assembler.hookManager.clearCache();
|
|
30
|
-
return r;
|
|
31
|
-
}
|
|
32
|
-
constructor(e){
|
|
33
|
-
this.assembler = e;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
7
|
+
const defineCustomMetadata = (t, o, n)=>{
|
|
8
|
+
Reflect.defineMetadata(`${constants.ReflectPrefix}${t}${constants.ReflectSuffix}`, o, n);
|
|
9
|
+
};
|
|
10
|
+
const getCustomMetadata = (t, o)=>{
|
|
11
|
+
return Reflect.getMetadata(`${constants.ReflectPrefix}${t}${constants.ReflectSuffix}`, o);
|
|
12
|
+
};
|
|
13
|
+
const getOwnCustomMetadata = (t, o)=>{
|
|
14
|
+
return Reflect.getOwnMetadata(`${constants.ReflectPrefix}${t}${constants.ReflectSuffix}`, o);
|
|
15
|
+
};
|
|
16
|
+
const getParamTypes = (e)=>{
|
|
17
|
+
return Reflect.getMetadata(constants.ReflectParamTypes, e) || [];
|
|
18
|
+
};
|
|
36
19
|
|
|
37
|
-
exports.
|
|
20
|
+
exports.defineCustomMetadata = defineCustomMetadata;
|
|
21
|
+
exports.getCustomMetadata = getCustomMetadata;
|
|
22
|
+
exports.getOwnCustomMetadata = getOwnCustomMetadata;
|
|
23
|
+
exports.getParamTypes = getParamTypes;
|
package/dist/index35.mjs
CHANGED
|
@@ -1,33 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { setDefinitionValue } from './index30.mjs';
|
|
1
|
+
import { ReflectPrefix, ReflectSuffix, ReflectParamTypes } from './index28.mjs';
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
this.assembler.hookManager.getCache().splice(n, 1);
|
|
17
|
-
this.assembler.hookManager.callInitHooks(this.assembler.publicContext);
|
|
18
|
-
const l = o ? {
|
|
19
|
-
...a.configuration,
|
|
20
|
-
...o
|
|
21
|
-
} : a.configuration;
|
|
22
|
-
HookManager.callHookImmediate(r, 'onInit', this.assembler.publicContext, l);
|
|
23
|
-
this.assembler.hookManager.callInitedHooks(this.assembler.publicContext);
|
|
24
|
-
HookManager.callHookImmediate(r, 'onInited', this.assembler.publicContext, l);
|
|
25
|
-
this.assembler.hookManager.clearCache();
|
|
26
|
-
return r;
|
|
27
|
-
}
|
|
28
|
-
constructor(e){
|
|
29
|
-
this.assembler = e;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
3
|
+
const defineCustomMetadata = (t, o, n)=>{
|
|
4
|
+
Reflect.defineMetadata(`${ReflectPrefix}${t}${ReflectSuffix}`, o, n);
|
|
5
|
+
};
|
|
6
|
+
const getCustomMetadata = (t, o)=>{
|
|
7
|
+
return Reflect.getMetadata(`${ReflectPrefix}${t}${ReflectSuffix}`, o);
|
|
8
|
+
};
|
|
9
|
+
const getOwnCustomMetadata = (t, o)=>{
|
|
10
|
+
return Reflect.getOwnMetadata(`${ReflectPrefix}${t}${ReflectSuffix}`, o);
|
|
11
|
+
};
|
|
12
|
+
const getParamTypes = (e)=>{
|
|
13
|
+
return Reflect.getMetadata(ReflectParamTypes, e) || [];
|
|
14
|
+
};
|
|
32
15
|
|
|
33
|
-
export {
|
|
16
|
+
export { defineCustomMetadata, getCustomMetadata, getOwnCustomMetadata, getParamTypes };
|
package/dist/index36.js
CHANGED
|
@@ -2,36 +2,112 @@
|
|
|
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
|
-
|
|
5
|
+
const constants = require('./index28.js');
|
|
6
|
+
const reflection = require('./index35.js');
|
|
7
|
+
const helpers = require('./index3.js');
|
|
8
|
+
|
|
9
|
+
const n = {
|
|
10
|
+
singleton: {
|
|
11
|
+
test: (r)=>typeof r === 'boolean' || typeof r === 'undefined',
|
|
12
|
+
throw: ()=>{
|
|
13
|
+
throw new Error(`'singleton' property must be of type 'boolean' or 'undefined'.`);
|
|
14
|
+
},
|
|
15
|
+
transform: (r)=>{
|
|
16
|
+
return typeof r === 'undefined' ? true : r ? true : false;
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
events: {
|
|
20
|
+
test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>typeof r === 'string'),
|
|
21
|
+
throw: ()=>{
|
|
22
|
+
throw new Error(`'events' property must be an array of strings or 'undefined'.`);
|
|
23
|
+
},
|
|
24
|
+
transform: (r)=>r
|
|
25
|
+
},
|
|
26
|
+
inject: {
|
|
27
|
+
test: (r)=>typeof r === 'undefined' || Array.isArray(r) && r.every((r)=>Array.isArray(r) && r.length >= 1 && r.length <= 3),
|
|
28
|
+
throw: ()=>{
|
|
29
|
+
throw new Error(`'inject' property must be an array of tuples of length 1, 2 or 3.`);
|
|
30
|
+
},
|
|
31
|
+
transform: (r)=>r
|
|
32
|
+
},
|
|
33
|
+
use: {
|
|
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
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
const validateDefinition = (r)=>{
|
|
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
|
+
}
|
|
19
85
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
addChannels: this.assembler.addChannels.bind(this.assembler),
|
|
29
|
-
removeChannels: this.assembler.removeChannels.bind(this.assembler)
|
|
30
|
-
};
|
|
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]);
|
|
31
94
|
}
|
|
32
|
-
|
|
33
|
-
|
|
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.`);
|
|
34
100
|
}
|
|
35
|
-
|
|
101
|
+
return reflection.getOwnCustomMetadata(constants.ReflectValue.AssemblageDefinition, e);
|
|
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
|
+
};
|
|
36
110
|
|
|
37
|
-
exports.
|
|
111
|
+
exports.getDefinition = getDefinition;
|
|
112
|
+
exports.setDefinitionValue = setDefinitionValue;
|
|
113
|
+
exports.validateDefinition = validateDefinition;
|