assemblerjs 0.9.6 → 1.0.0
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/README.md +220 -56
- package/dist/index.d.ts +701 -464
- package/dist/index.js +59 -1
- package/dist/index.mjs +21 -916
- package/dist/index10.js +8 -0
- package/dist/index10.mjs +4 -0
- package/dist/index11.js +27 -0
- package/dist/index11.mjs +23 -0
- package/dist/index12.js +16 -0
- package/dist/index12.mjs +12 -0
- package/dist/index13.js +94 -0
- package/dist/index13.mjs +90 -0
- package/dist/index14.js +22 -0
- package/dist/index14.mjs +18 -0
- package/dist/index15.js +22 -0
- package/dist/index15.mjs +18 -0
- package/dist/index16.js +22 -0
- package/dist/index16.mjs +18 -0
- package/dist/index17.js +22 -0
- package/dist/index17.mjs +18 -0
- package/dist/index18.js +31 -0
- package/dist/index18.mjs +26 -0
- package/dist/index19.js +31 -0
- package/dist/index19.mjs +26 -0
- package/dist/index2.js +22 -0
- package/dist/index2.mjs +17 -0
- package/dist/index20.js +31 -0
- package/dist/index20.mjs +27 -0
- package/dist/index21.js +33 -0
- package/dist/index21.mjs +25 -0
- package/dist/index22.js +53 -0
- package/dist/index22.mjs +48 -0
- package/dist/index23.js +69 -0
- package/dist/index23.mjs +65 -0
- package/dist/index24.js +37 -0
- package/dist/index24.mjs +33 -0
- package/dist/index25.js +71 -0
- package/dist/index25.mjs +67 -0
- package/dist/index26.js +37 -0
- package/dist/index26.mjs +33 -0
- package/dist/index27.js +37 -0
- package/dist/index27.mjs +33 -0
- package/dist/index28.js +46 -0
- package/dist/index28.mjs +41 -0
- package/dist/index29.js +20 -0
- package/dist/index29.mjs +14 -0
- package/dist/index3.js +20 -0
- package/dist/index3.mjs +14 -0
- package/dist/index30.js +19 -0
- package/dist/index30.mjs +13 -0
- package/dist/index31.js +100 -0
- package/dist/index31.mjs +94 -0
- package/dist/index32.js +28 -0
- package/dist/index32.mjs +24 -0
- package/dist/index33.js +34 -0
- package/dist/index33.mjs +29 -0
- package/dist/index34.js +14 -0
- package/dist/index34.mjs +10 -0
- package/dist/index35.js +54 -0
- package/dist/index35.mjs +50 -0
- package/dist/index36.js +117 -0
- package/dist/index36.mjs +113 -0
- package/dist/index37.js +19 -0
- package/dist/index37.mjs +15 -0
- package/dist/index38.js +31 -0
- package/dist/index38.mjs +27 -0
- package/dist/index39.js +55 -0
- package/dist/index39.mjs +50 -0
- package/dist/index4.js +81 -0
- package/dist/index4.mjs +77 -0
- package/dist/index5.js +94 -0
- package/dist/index5.mjs +90 -0
- package/dist/index6.js +114 -0
- package/dist/index6.mjs +110 -0
- package/dist/index7.js +9 -0
- package/dist/index7.mjs +5 -0
- package/dist/index8.js +10 -0
- package/dist/index8.mjs +6 -0
- package/dist/index9.js +8 -0
- package/dist/index9.mjs +4 -0
- package/package.json +8 -5
package/dist/index21.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const reflection = require('./index30.js');
|
|
6
|
+
const parameterDecoratorFactory = require('./index13.js');
|
|
7
|
+
|
|
8
|
+
const getParamIndexKey = (e)=>{
|
|
9
|
+
return `assemblage:${e.toLowerCase()}.param.index`;
|
|
10
|
+
};
|
|
11
|
+
const getParamValueKey = (e)=>{
|
|
12
|
+
return `assemblage:${e.toLowerCase()}.param.value`;
|
|
13
|
+
};
|
|
14
|
+
const getParameterIndexes = (r, t)=>{
|
|
15
|
+
return reflection.getOwnCustomMetadata(getParamIndexKey(r), t) || [];
|
|
16
|
+
};
|
|
17
|
+
const getParameterValues = (r, t)=>{
|
|
18
|
+
return reflection.getOwnCustomMetadata(getParamValueKey(r), t);
|
|
19
|
+
};
|
|
20
|
+
const getDecoratedParametersIndexes = (e)=>{
|
|
21
|
+
const t = parameterDecoratorFactory.ParameterDecoratorFactory.getRegisteredDecorators();
|
|
22
|
+
const a = {};
|
|
23
|
+
for (const r of t){
|
|
24
|
+
a[r] = getParameterIndexes(r, e);
|
|
25
|
+
}
|
|
26
|
+
return a;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
exports.getDecoratedParametersIndexes = getDecoratedParametersIndexes;
|
|
30
|
+
exports.getParamIndexKey = getParamIndexKey;
|
|
31
|
+
exports.getParamValueKey = getParamValueKey;
|
|
32
|
+
exports.getParameterIndexes = getParameterIndexes;
|
|
33
|
+
exports.getParameterValues = getParameterValues;
|
package/dist/index21.mjs
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { getOwnCustomMetadata } from './index30.mjs';
|
|
2
|
+
import { ParameterDecoratorFactory } from './index13.mjs';
|
|
3
|
+
|
|
4
|
+
const getParamIndexKey = (e)=>{
|
|
5
|
+
return `assemblage:${e.toLowerCase()}.param.index`;
|
|
6
|
+
};
|
|
7
|
+
const getParamValueKey = (e)=>{
|
|
8
|
+
return `assemblage:${e.toLowerCase()}.param.value`;
|
|
9
|
+
};
|
|
10
|
+
const getParameterIndexes = (r, t)=>{
|
|
11
|
+
return getOwnCustomMetadata(getParamIndexKey(r), t) || [];
|
|
12
|
+
};
|
|
13
|
+
const getParameterValues = (r, t)=>{
|
|
14
|
+
return getOwnCustomMetadata(getParamValueKey(r), t);
|
|
15
|
+
};
|
|
16
|
+
const getDecoratedParametersIndexes = (e)=>{
|
|
17
|
+
const t = ParameterDecoratorFactory.getRegisteredDecorators();
|
|
18
|
+
const a = {};
|
|
19
|
+
for (const r of t){
|
|
20
|
+
a[r] = getParameterIndexes(r, e);
|
|
21
|
+
}
|
|
22
|
+
return a;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export { getDecoratedParametersIndexes, getParamIndexKey, getParamValueKey, getParameterIndexes, getParameterValues };
|
package/dist/index22.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const constants = require('./index29.js');
|
|
6
|
+
const reflection = require('./index30.js');
|
|
7
|
+
const helpers = require('./index21.js');
|
|
8
|
+
const parameterDecoratorFactory = require('./index13.js');
|
|
9
|
+
const decorator = require('./index2.js');
|
|
10
|
+
|
|
11
|
+
const createConstructorDecorator = (e)=>{
|
|
12
|
+
return (t)=>ConstructorDecorator(e, t);
|
|
13
|
+
};
|
|
14
|
+
const ConstructorDecorator = (m, i)=>(l)=>{
|
|
15
|
+
const p = class extends l {
|
|
16
|
+
constructor(...e){
|
|
17
|
+
super(...e);
|
|
18
|
+
if (m) m.call(this, i);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(p, 'name', {
|
|
22
|
+
value: l.name
|
|
23
|
+
});
|
|
24
|
+
const u = Reflect.getOwnMetadata(constants.ReflectParamTypes, l) || [];
|
|
25
|
+
const d = helpers.getDecoratedParametersIndexes(l);
|
|
26
|
+
const g = [];
|
|
27
|
+
const h = parameterDecoratorFactory.ParameterDecoratorFactory.getRegisteredDecorators();
|
|
28
|
+
for(let r = 0; r < u.length; r++){
|
|
29
|
+
let o = false;
|
|
30
|
+
for (const s of h){
|
|
31
|
+
if (d[s]?.includes(r)) {
|
|
32
|
+
const a = parameterDecoratorFactory.ParameterDecoratorFactory.getDecoratorHandler(s);
|
|
33
|
+
if (a) {
|
|
34
|
+
const e = reflection.getOwnCustomMetadata(helpers.getParamValueKey(s), l);
|
|
35
|
+
a(e[r], p, r);
|
|
36
|
+
} else {
|
|
37
|
+
const o = reflection.getOwnCustomMetadata(helpers.getParamIndexKey(s), l) || [];
|
|
38
|
+
o.push(r);
|
|
39
|
+
reflection.defineCustomMetadata(helpers.getParamIndexKey(s), o, p);
|
|
40
|
+
}
|
|
41
|
+
o = true;
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (!o && u[r]) {
|
|
46
|
+
g.push(u[r]);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return decorator.decorateAssemblage(p, reflection.getOwnCustomMetadata(constants.ReflectValue.AssemblageDefinition, l));
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
exports.ConstructorDecorator = ConstructorDecorator;
|
|
53
|
+
exports.createConstructorDecorator = createConstructorDecorator;
|
package/dist/index22.mjs
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ReflectParamTypes, ReflectValue } from './index29.mjs';
|
|
2
|
+
import { getOwnCustomMetadata, defineCustomMetadata } from './index30.mjs';
|
|
3
|
+
import { getDecoratedParametersIndexes, getParamValueKey, getParamIndexKey } from './index21.mjs';
|
|
4
|
+
import { ParameterDecoratorFactory } from './index13.mjs';
|
|
5
|
+
import { decorateAssemblage } from './index2.mjs';
|
|
6
|
+
|
|
7
|
+
const createConstructorDecorator = (e)=>{
|
|
8
|
+
return (t)=>ConstructorDecorator(e, t);
|
|
9
|
+
};
|
|
10
|
+
const ConstructorDecorator = (m, i)=>(l)=>{
|
|
11
|
+
const p = class extends l {
|
|
12
|
+
constructor(...e){
|
|
13
|
+
super(...e);
|
|
14
|
+
if (m) m.call(this, i);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(p, 'name', {
|
|
18
|
+
value: l.name
|
|
19
|
+
});
|
|
20
|
+
const u = Reflect.getOwnMetadata(ReflectParamTypes, l) || [];
|
|
21
|
+
const d = getDecoratedParametersIndexes(l);
|
|
22
|
+
const g = [];
|
|
23
|
+
const h = ParameterDecoratorFactory.getRegisteredDecorators();
|
|
24
|
+
for(let r = 0; r < u.length; r++){
|
|
25
|
+
let o = false;
|
|
26
|
+
for (const s of h){
|
|
27
|
+
if (d[s]?.includes(r)) {
|
|
28
|
+
const a = ParameterDecoratorFactory.getDecoratorHandler(s);
|
|
29
|
+
if (a) {
|
|
30
|
+
const e = getOwnCustomMetadata(getParamValueKey(s), l);
|
|
31
|
+
a(e[r], p, r);
|
|
32
|
+
} else {
|
|
33
|
+
const o = getOwnCustomMetadata(getParamIndexKey(s), l) || [];
|
|
34
|
+
o.push(r);
|
|
35
|
+
defineCustomMetadata(getParamIndexKey(s), o, p);
|
|
36
|
+
}
|
|
37
|
+
o = true;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (!o && u[r]) {
|
|
42
|
+
g.push(u[r]);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return decorateAssemblage(p, getOwnCustomMetadata(ReflectValue.AssemblageDefinition, l));
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export { ConstructorDecorator, createConstructorDecorator };
|
package/dist/index23.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const hookManager = require('./index25.js');
|
|
6
|
+
const resolutionStrategies = require('./index33.js');
|
|
7
|
+
const use = require('./index34.js');
|
|
8
|
+
const inject = require('./index35.js');
|
|
9
|
+
const injectable = require('./index36.js');
|
|
10
|
+
|
|
11
|
+
class InjectableManager {
|
|
12
|
+
setContexts(e, t) {
|
|
13
|
+
this.privateContext = e;
|
|
14
|
+
this.publicContext = t;
|
|
15
|
+
}
|
|
16
|
+
register(r, n = false) {
|
|
17
|
+
const o = n === true ? use.resolveInstanceInjectionTuple(r) : inject.resolveInjectionTuple(r);
|
|
18
|
+
if (this.has(o.identifier)) {
|
|
19
|
+
throw new Error(`An assemblage is already registered with identifier '${o.identifier.name}'.`);
|
|
20
|
+
}
|
|
21
|
+
const a = injectable.Injectable.of(o, this.privateContext, this.publicContext);
|
|
22
|
+
this.injectables.set(a.identifier, a);
|
|
23
|
+
hookManager.HookManager.callHook(a.concrete, 'onRegister', this.publicContext, a.configuration);
|
|
24
|
+
return a;
|
|
25
|
+
}
|
|
26
|
+
has(e) {
|
|
27
|
+
return this.injectables.has(e);
|
|
28
|
+
}
|
|
29
|
+
require(e, t) {
|
|
30
|
+
if (!this.injectables.has(e)) {
|
|
31
|
+
throw new Error(`Class with identifier '${e.name}' has not been registered or is a circular dependency.`);
|
|
32
|
+
}
|
|
33
|
+
const i = this.injectables.get(e);
|
|
34
|
+
if (i.isSingleton) {
|
|
35
|
+
return this.singletonStrategy.resolve(i, t);
|
|
36
|
+
} else {
|
|
37
|
+
return this.transientStrategy.resolve(i, t);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
concrete(e) {
|
|
41
|
+
const t = this.injectables.get(e);
|
|
42
|
+
if (t) return t.concrete;
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
tagged(...e) {
|
|
46
|
+
const t = [];
|
|
47
|
+
for (const i of e){
|
|
48
|
+
for (const [e, s] of this.injectables){
|
|
49
|
+
if (s.tags.includes(i)) t.push(s.build());
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return t;
|
|
53
|
+
}
|
|
54
|
+
dispose() {
|
|
55
|
+
for (const [e, t] of this.injectables){
|
|
56
|
+
t.dispose();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
get size() {
|
|
60
|
+
return this.injectables.size;
|
|
61
|
+
}
|
|
62
|
+
constructor(){
|
|
63
|
+
this.injectables = new Map();
|
|
64
|
+
this.singletonStrategy = new resolutionStrategies.SingletonStrategy();
|
|
65
|
+
this.transientStrategy = new resolutionStrategies.TransientStrategy();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
exports.InjectableManager = InjectableManager;
|
package/dist/index23.mjs
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { HookManager } from './index25.mjs';
|
|
2
|
+
import { SingletonStrategy, TransientStrategy } from './index33.mjs';
|
|
3
|
+
import { resolveInstanceInjectionTuple } from './index34.mjs';
|
|
4
|
+
import { resolveInjectionTuple } from './index35.mjs';
|
|
5
|
+
import { Injectable } from './index36.mjs';
|
|
6
|
+
|
|
7
|
+
class InjectableManager {
|
|
8
|
+
setContexts(e, t) {
|
|
9
|
+
this.privateContext = e;
|
|
10
|
+
this.publicContext = t;
|
|
11
|
+
}
|
|
12
|
+
register(r, n = false) {
|
|
13
|
+
const o = n === true ? resolveInstanceInjectionTuple(r) : resolveInjectionTuple(r);
|
|
14
|
+
if (this.has(o.identifier)) {
|
|
15
|
+
throw new Error(`An assemblage is already registered with identifier '${o.identifier.name}'.`);
|
|
16
|
+
}
|
|
17
|
+
const a = Injectable.of(o, this.privateContext, this.publicContext);
|
|
18
|
+
this.injectables.set(a.identifier, a);
|
|
19
|
+
HookManager.callHook(a.concrete, 'onRegister', this.publicContext, a.configuration);
|
|
20
|
+
return a;
|
|
21
|
+
}
|
|
22
|
+
has(e) {
|
|
23
|
+
return this.injectables.has(e);
|
|
24
|
+
}
|
|
25
|
+
require(e, t) {
|
|
26
|
+
if (!this.injectables.has(e)) {
|
|
27
|
+
throw new Error(`Class with identifier '${e.name}' has not been registered or is a circular dependency.`);
|
|
28
|
+
}
|
|
29
|
+
const i = this.injectables.get(e);
|
|
30
|
+
if (i.isSingleton) {
|
|
31
|
+
return this.singletonStrategy.resolve(i, t);
|
|
32
|
+
} else {
|
|
33
|
+
return this.transientStrategy.resolve(i, t);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
concrete(e) {
|
|
37
|
+
const t = this.injectables.get(e);
|
|
38
|
+
if (t) return t.concrete;
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
tagged(...e) {
|
|
42
|
+
const t = [];
|
|
43
|
+
for (const i of e){
|
|
44
|
+
for (const [e, s] of this.injectables){
|
|
45
|
+
if (s.tags.includes(i)) t.push(s.build());
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return t;
|
|
49
|
+
}
|
|
50
|
+
dispose() {
|
|
51
|
+
for (const [e, t] of this.injectables){
|
|
52
|
+
t.dispose();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
get size() {
|
|
56
|
+
return this.injectables.size;
|
|
57
|
+
}
|
|
58
|
+
constructor(){
|
|
59
|
+
this.injectables = new Map();
|
|
60
|
+
this.singletonStrategy = new SingletonStrategy();
|
|
61
|
+
this.transientStrategy = new TransientStrategy();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export { InjectableManager };
|
package/dist/index24.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
class ObjectManager {
|
|
6
|
+
use(e, t) {
|
|
7
|
+
if (this.has(e)) {
|
|
8
|
+
throw new Error(`A value is already registered with identifier '${String(e)}'.`);
|
|
9
|
+
}
|
|
10
|
+
this.objects.set(e, t);
|
|
11
|
+
return t;
|
|
12
|
+
}
|
|
13
|
+
has(e) {
|
|
14
|
+
return this.objects.has(e);
|
|
15
|
+
}
|
|
16
|
+
require(e) {
|
|
17
|
+
if (!this.objects.has(e)) {
|
|
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.`);
|
|
25
|
+
}
|
|
26
|
+
this.globals.set(e, t);
|
|
27
|
+
}
|
|
28
|
+
global(e) {
|
|
29
|
+
return this.globals.get(e);
|
|
30
|
+
}
|
|
31
|
+
constructor(){
|
|
32
|
+
this.objects = new Map();
|
|
33
|
+
this.globals = new Map();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
exports.ObjectManager = ObjectManager;
|
package/dist/index24.mjs
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
class ObjectManager {
|
|
2
|
+
use(e, t) {
|
|
3
|
+
if (this.has(e)) {
|
|
4
|
+
throw new Error(`A value is already registered with identifier '${String(e)}'.`);
|
|
5
|
+
}
|
|
6
|
+
this.objects.set(e, t);
|
|
7
|
+
return t;
|
|
8
|
+
}
|
|
9
|
+
has(e) {
|
|
10
|
+
return this.objects.has(e);
|
|
11
|
+
}
|
|
12
|
+
require(e) {
|
|
13
|
+
if (!this.objects.has(e)) {
|
|
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.`);
|
|
21
|
+
}
|
|
22
|
+
this.globals.set(e, t);
|
|
23
|
+
}
|
|
24
|
+
global(e) {
|
|
25
|
+
return this.globals.get(e);
|
|
26
|
+
}
|
|
27
|
+
constructor(){
|
|
28
|
+
this.objects = new Map();
|
|
29
|
+
this.globals = new Map();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { ObjectManager };
|
package/dist/index25.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const core = require('@assemblerjs/core');
|
|
6
|
+
|
|
7
|
+
class HookManager {
|
|
8
|
+
prepareInitHook(e, t) {
|
|
9
|
+
this.initCache.push({
|
|
10
|
+
instance: e,
|
|
11
|
+
configuration: t
|
|
12
|
+
});
|
|
13
|
+
return this.initCache;
|
|
14
|
+
}
|
|
15
|
+
callInitHooks(e) {
|
|
16
|
+
for (const t of this.initCache){
|
|
17
|
+
HookManager.callHookImmediate(t.instance, 'onInit', e, t.configuration);
|
|
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
|
+
}
|
|
26
|
+
}
|
|
27
|
+
clearCache() {
|
|
28
|
+
this.initCache.length = 0;
|
|
29
|
+
}
|
|
30
|
+
getCache() {
|
|
31
|
+
return this.initCache;
|
|
32
|
+
}
|
|
33
|
+
constructor(){
|
|
34
|
+
this.initCache = [];
|
|
35
|
+
}
|
|
36
|
+
}
|
|
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
|
+
|
|
71
|
+
exports.HookManager = HookManager;
|
package/dist/index25.mjs
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { isAsync } from '@assemblerjs/core';
|
|
2
|
+
|
|
3
|
+
class HookManager {
|
|
4
|
+
prepareInitHook(e, t) {
|
|
5
|
+
this.initCache.push({
|
|
6
|
+
instance: e,
|
|
7
|
+
configuration: t
|
|
8
|
+
});
|
|
9
|
+
return this.initCache;
|
|
10
|
+
}
|
|
11
|
+
callInitHooks(e) {
|
|
12
|
+
for (const t of this.initCache){
|
|
13
|
+
HookManager.callHookImmediate(t.instance, 'onInit', e, t.configuration);
|
|
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
|
+
}
|
|
22
|
+
}
|
|
23
|
+
clearCache() {
|
|
24
|
+
this.initCache.length = 0;
|
|
25
|
+
}
|
|
26
|
+
getCache() {
|
|
27
|
+
return this.initCache;
|
|
28
|
+
}
|
|
29
|
+
constructor(){
|
|
30
|
+
this.initCache = [];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
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
|
+
|
|
67
|
+
export { HookManager };
|
package/dist/index26.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const hookManager = require('./index25.js');
|
|
6
|
+
const schema = require('./index31.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.');
|
|
18
|
+
}
|
|
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;
|
|
31
|
+
}
|
|
32
|
+
constructor(e){
|
|
33
|
+
this.assembler = e;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
exports.AssemblerBuilder = AssemblerBuilder;
|
package/dist/index26.mjs
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { HookManager } from './index25.mjs';
|
|
2
|
+
import { setDefinitionValue } from './index31.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.');
|
|
14
|
+
}
|
|
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;
|
|
27
|
+
}
|
|
28
|
+
constructor(e){
|
|
29
|
+
this.assembler = e;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { AssemblerBuilder };
|
package/dist/index27.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
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
|
+
};
|
|
19
|
+
}
|
|
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
|
+
};
|
|
31
|
+
}
|
|
32
|
+
constructor(s){
|
|
33
|
+
this.assembler = s;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
exports.ContextProvider = ContextProvider;
|
package/dist/index27.mjs
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
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
|
+
};
|
|
15
|
+
}
|
|
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
|
+
};
|
|
27
|
+
}
|
|
28
|
+
constructor(s){
|
|
29
|
+
this.assembler = s;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { ContextProvider };
|