@adaas/a-concept 0.1.23 → 0.1.24
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/src/global/A-Abstraction/A-Abstraction-Extend.decorator.js +16 -9
- package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.js.map +1 -1
- package/dist/src/global/A-Component/A-Component.meta.js +3 -2
- package/dist/src/global/A-Component/A-Component.meta.js.map +1 -1
- package/dist/src/global/A-Container/A-Container.meta.js +4 -11
- package/dist/src/global/A-Container/A-Container.meta.js.map +1 -1
- package/dist/src/global/A-Entity/A-Entity.class.js +2 -1
- package/dist/src/global/A-Entity/A-Entity.class.js.map +1 -1
- package/dist/src/global/A-Feature/A-Feature-Define.decorator.js +1 -1
- package/dist/src/global/A-Feature/A-Feature-Define.decorator.js.map +1 -1
- package/dist/src/global/A-Feature/A-Feature-Extend.decorator.js +21 -12
- package/dist/src/global/A-Feature/A-Feature-Extend.decorator.js.map +1 -1
- package/dist/src/global/A-Feature/A-Feature.class.js +1 -1
- package/dist/src/global/A-Feature/A-Feature.class.js.map +1 -1
- package/dist/src/global/A-Feature/A-Feature.types.d.ts +30 -6
- package/dist/src/global/A-Feature/A-Feature.types.js.map +1 -1
- package/dist/src/global/A-Stage/A-Stage.types.d.ts +6 -2
- package/dist/src/global/A-StepManager/A-StepManager.class.js +11 -10
- package/dist/src/global/A-StepManager/A-StepManager.class.js.map +1 -1
- package/package.json +1 -1
- package/src/global/A-Abstraction/A-Abstraction-Extend.decorator.ts +16 -12
- package/src/global/A-Component/A-Component.meta.ts +3 -2
- package/src/global/A-Container/A-Container.meta.ts +5 -8
- package/src/global/A-Entity/A-Entity.class.ts +2 -1
- package/src/global/A-Feature/A-Feature-Define.decorator.ts +5 -3
- package/src/global/A-Feature/A-Feature-Extend.decorator.ts +21 -16
- package/src/global/A-Feature/A-Feature.class.ts +1 -1
- package/src/global/A-Feature/A-Feature.types.ts +33 -8
- package/src/global/A-Stage/A-Stage.types.ts +7 -2
- package/src/global/A-StepManager/A-StepManager.class.ts +19 -13
- package/tests/A-Concept.test.ts +53 -4
- package/tests/A-Feature.test.ts +4 -4
- package/tests/A-StepManager.test.ts +60 -11
|
@@ -27,7 +27,7 @@ name,
|
|
|
27
27
|
*/
|
|
28
28
|
config = {}) {
|
|
29
29
|
return function (target, propertyKey, descriptor) {
|
|
30
|
-
var _a
|
|
30
|
+
var _a;
|
|
31
31
|
// for error messages
|
|
32
32
|
const componentName = ((_a = target === null || target === void 0 ? void 0 : target.constructor) === null || _a === void 0 ? void 0 : _a.name) || String(target) || 'UnknownComponent';
|
|
33
33
|
if (!name)
|
|
@@ -61,14 +61,21 @@ config = {}) {
|
|
|
61
61
|
handler: propertyKey,
|
|
62
62
|
behavior: config.behavior || 'sync',
|
|
63
63
|
throwOnError: config.throwOnError !== undefined ? config.throwOnError : true,
|
|
64
|
-
before: (
|
|
65
|
-
?
|
|
66
|
-
:
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
64
|
+
before: A_TypeGuards_helper_1.A_TypeGuards.isArray(config.before)
|
|
65
|
+
? new RegExp(`^${config.before.join('|').replace(/\./g, '\\.')}$`).source
|
|
66
|
+
: config.before instanceof RegExp
|
|
67
|
+
? config.before.source
|
|
68
|
+
: '',
|
|
69
|
+
after: A_TypeGuards_helper_1.A_TypeGuards.isArray(config.after)
|
|
70
|
+
? new RegExp(`^${config.after.join('|').replace(/\./g, '\\.')}$`).source
|
|
71
|
+
: config.after instanceof RegExp
|
|
72
|
+
? config.after.source
|
|
73
|
+
: '',
|
|
74
|
+
override: A_TypeGuards_helper_1.A_TypeGuards.isArray(config.override)
|
|
75
|
+
? new RegExp(`^${config.override.join('|').replace(/\./g, '\\.')}$`).source
|
|
76
|
+
: config.after instanceof RegExp
|
|
77
|
+
? config.after.source
|
|
78
|
+
: '',
|
|
72
79
|
};
|
|
73
80
|
if (existedIndex !== -1) {
|
|
74
81
|
// Update the existing method in the metadata
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"A-Abstraction-Extend.decorator.js","sourceRoot":"","sources":["../../../../src/global/A-Abstraction/A-Abstraction-Extend.decorator.ts"],"names":[],"mappings":";;AA2BA,
|
|
1
|
+
{"version":3,"file":"A-Abstraction-Extend.decorator.js","sourceRoot":"","sources":["../../../../src/global/A-Abstraction/A-Abstraction-Extend.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,9 +33,10 @@ class A_ComponentMeta extends A_Meta_class_1.A_Meta {
|
|
|
33
33
|
name: extension.name,
|
|
34
34
|
handler: extension.handler,
|
|
35
35
|
behavior: extension.behavior,
|
|
36
|
-
before: extension.before ||
|
|
37
|
-
after: extension.after ||
|
|
36
|
+
before: extension.before || '',
|
|
37
|
+
after: extension.after || '',
|
|
38
38
|
throwOnError: extension.throwOnError || true,
|
|
39
|
+
override: ''
|
|
39
40
|
});
|
|
40
41
|
});
|
|
41
42
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"A-Component.meta.js","sourceRoot":"","sources":["../../../../src/global/A-Component/A-Component.meta.ts"],"names":[],"mappings":";;;AAEA,yDAAgD;AAEhD,mEAAoE;AAIpE,MAAa,eAAgB,SAAQ,qBAA8B;IAE/D;;;;;OAKG;IACH,UAAU,CACN,OAAe;QAEf,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,iDAAyB,CAAC,UAAU,CAAC,CAAC;QAElE,MAAM,IAAI,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC;QAE5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,UAAU,CACN,OAAe;QAEf,MAAM,KAAK,GAAsC,EAAE,CAAC;QAEpD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,iDAAyB,CAAC,UAAU,CAAC,CAAC;QAElE,UAAU,aAAV,UAAU,uBAAV,UAAU;QACN,gDAAgD;SAC9C,IAAI,CAAC,OAAO,EACb,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE;YAC/B,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC3B,KAAK,CAAC,IAAI,CAAC;oBACP,0BAA0B;oBAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,EAAE;oBAC9B,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,EAAE;oBAC5B,YAAY,EAAE,SAAS,CAAC,YAAY,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"A-Component.meta.js","sourceRoot":"","sources":["../../../../src/global/A-Component/A-Component.meta.ts"],"names":[],"mappings":";;;AAEA,yDAAgD;AAEhD,mEAAoE;AAIpE,MAAa,eAAgB,SAAQ,qBAA8B;IAE/D;;;;;OAKG;IACH,UAAU,CACN,OAAe;QAEf,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,iDAAyB,CAAC,UAAU,CAAC,CAAC;QAElE,MAAM,IAAI,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC;QAE5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,UAAU,CACN,OAAe;QAEf,MAAM,KAAK,GAAsC,EAAE,CAAC;QAEpD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,iDAAyB,CAAC,UAAU,CAAC,CAAC;QAElE,UAAU,aAAV,UAAU,uBAAV,UAAU;QACN,gDAAgD;SAC9C,IAAI,CAAC,OAAO,EACb,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE;YAC/B,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC3B,KAAK,CAAC,IAAI,CAAC;oBACP,0BAA0B;oBAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,EAAE;oBAC9B,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,EAAE;oBAC5B,YAAY,EAAE,SAAS,CAAC,YAAY,IAAI,IAAI;oBAC5C,QAAQ,EAAC,EAAE;iBACd,CAAC,CAAC;YAEP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAGP,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,QAAQ;QAEJ,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,iDAAyB,CAAC,QAAQ,CAAC,CAAC;QAE9D,OAAO,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,GAEnB,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACH,YAAY,CACR,WAAgB;QAEhB,MAAM,KAAK,GAAsC,EAAE,CAAC;QAEpD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,iDAAyB,CAAC,YAAY,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,iDAAyB,CAAC,UAAU,CAAC,CAAC;QAElE,YAAY,aAAZ,YAAY,uBAAZ,YAAY;QACR,gDAAgD;SAC9C,IAAI,CAAC,wBAAwB,WAAW,EAAE,EAC3C,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE;YAC/B,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC3B,MAAM,IAAI,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC;gBAEtD,KAAK,CAAC,IAAI,iCACH,SAAS;oBACZ,0BAA0B;oBAC1B,IAAI,IACN,CAAC;YAEP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAGP,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AArGD,0CAqGC"}
|
|
@@ -39,15 +39,7 @@ class A_ContainerMeta extends A_Meta_class_1.A_Meta {
|
|
|
39
39
|
.find(`CONCEPT_ABSTRACTION::${abstraction}`).forEach(([handler, extensions]) => {
|
|
40
40
|
extensions.forEach(extension => {
|
|
41
41
|
const args = (injections === null || injections === void 0 ? void 0 : injections.get(extension.handler)) || [];
|
|
42
|
-
steps.push({
|
|
43
|
-
name: extension.name,
|
|
44
|
-
handler: extension.handler,
|
|
45
|
-
args,
|
|
46
|
-
before: extension.before,
|
|
47
|
-
behavior: extension.behavior,
|
|
48
|
-
after: extension.after,
|
|
49
|
-
throwOnError: extension.throwOnError,
|
|
50
|
-
});
|
|
42
|
+
steps.push(Object.assign(Object.assign({}, extension), { args }));
|
|
51
43
|
});
|
|
52
44
|
});
|
|
53
45
|
return steps;
|
|
@@ -70,9 +62,10 @@ class A_ContainerMeta extends A_Meta_class_1.A_Meta {
|
|
|
70
62
|
name: extension.name,
|
|
71
63
|
handler: extension.handler,
|
|
72
64
|
behavior: extension.behavior,
|
|
73
|
-
before: extension.before ||
|
|
74
|
-
after: extension.after ||
|
|
65
|
+
before: extension.before || '',
|
|
66
|
+
after: extension.after || '',
|
|
75
67
|
throwOnError: extension.throwOnError || true,
|
|
68
|
+
override: ''
|
|
76
69
|
});
|
|
77
70
|
});
|
|
78
71
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"A-Container.meta.js","sourceRoot":"","sources":["../../../../src/global/A-Container/A-Container.meta.ts"],"names":[],"mappings":";;;AAGA,yDAAgD;AAChD,mEAAoE;AAMpE,MAAa,eAAgB,SAAQ,qBAA8B;IAI/D;;;;;OAKG;IACH,UAAU,CACN,OAAe;QAEf,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,iDAAyB,CAAC,UAAU,CAAC,CAAC;QAElE,MAAM,IAAI,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC;QAE5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,QAAQ;QAEJ,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,iDAAyB,CAAC,QAAQ,CAAC,CAAC;QAE9D,OAAO,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,GAEnB,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACH,YAAY,CACR,WAAyC;QAEzC,MAAM,KAAK,GAAsC,EAAE,CAAC;QAEpD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,iDAAyB,CAAC,YAAY,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,iDAAyB,CAAC,UAAU,CAAC,CAAC;QAElE,YAAY,aAAZ,YAAY,uBAAZ,YAAY;QACR,gDAAgD;SAC9C,IAAI,CAAC,wBAAwB,WAAW,EAAE,EAC3C,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE;YAC/B,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC3B,MAAM,IAAI,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC;gBAEtD,KAAK,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"A-Container.meta.js","sourceRoot":"","sources":["../../../../src/global/A-Container/A-Container.meta.ts"],"names":[],"mappings":";;;AAGA,yDAAgD;AAChD,mEAAoE;AAMpE,MAAa,eAAgB,SAAQ,qBAA8B;IAI/D;;;;;OAKG;IACH,UAAU,CACN,OAAe;QAEf,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,iDAAyB,CAAC,UAAU,CAAC,CAAC;QAElE,MAAM,IAAI,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC;QAE5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,QAAQ;QAEJ,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,iDAAyB,CAAC,QAAQ,CAAC,CAAC;QAE9D,OAAO,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,GAEnB,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACH,YAAY,CACR,WAAyC;QAEzC,MAAM,KAAK,GAAsC,EAAE,CAAC;QAEpD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,iDAAyB,CAAC,YAAY,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,iDAAyB,CAAC,UAAU,CAAC,CAAC;QAElE,YAAY,aAAZ,YAAY,uBAAZ,YAAY;QACR,gDAAgD;SAC9C,IAAI,CAAC,wBAAwB,WAAW,EAAE,EAC3C,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE;YAC/B,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC3B,MAAM,IAAI,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC;gBAEtD,KAAK,CAAC,IAAI,iCACH,SAAS,KACZ,IAAI,IACN,CAAC;YAEP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAGP,OAAO,KAAK,CAAC;IACjB,CAAC;IAGD;;;;;OAKG;IACH,UAAU,CACN,OAAe;QAEf,MAAM,KAAK,GAAsC,EAAE,CAAC;QAEpD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,iDAAyB,CAAC,UAAU,CAAC,CAAC;QAElE,UAAU,aAAV,UAAU,uBAAV,UAAU;QACN,gDAAgD;SAC9C,IAAI,CAAC,OAAO,EACb,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE;YAC/B,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC3B,KAAK,CAAC,IAAI,CAAC;oBACP,0BAA0B;oBAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,EAAE;oBAC9B,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,EAAE;oBAC5B,YAAY,EAAE,SAAS,CAAC,YAAY,IAAI,IAAI;oBAC5C,QAAQ,EAAE,EAAE;iBAEf,CAAC,CAAC;YAEP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAGP,OAAO,KAAK,CAAC;IACjB,CAAC;CAEJ;AAzGD,0CAyGC"}
|
|
@@ -158,7 +158,8 @@ class A_Entity {
|
|
|
158
158
|
return __awaiter(this, void 0, void 0, function* () {
|
|
159
159
|
const newFeature = new A_Feature_class_1.A_Feature({
|
|
160
160
|
name: feature,
|
|
161
|
-
component: this
|
|
161
|
+
component: this,
|
|
162
|
+
scope
|
|
162
163
|
});
|
|
163
164
|
return yield newFeature.process(scope);
|
|
164
165
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"A-Entity.class.js","sourceRoot":"","sources":["../../../../src/global/A-Entity/A-Entity.class.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,kEAAyD;AAEzD,oFAAgF;AAChF,sDAA6C;AAC7C,kFAA8E;AAC9E,qDAAkD;AAClD,kEAAyD;AAGzD;;;;;;GAMG;AACH,MAAa,QAAQ;IAMjB,uEAAuE;IACvE,8EAA8E;IAC9E,uEAAuE;IACvE;;OAEG;IACH,MAAM,KAAK,MAAM;QACb,OAAO,sCAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IACD;;;OAGG;IACH,MAAM,KAAK,OAAO;QACd,OAAO,2BAAS,CAAC,OAAO,CAAC;IAC7B,CAAC;IACD;;;;;OAKG;IACH,MAAM,KAAK,KAAK;QACZ,OAAO,2BAAS,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/B,CAAC;IA2ED,YAAY,KAA2D;QAEnE,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/C,6EAA6E;QAC7E,iEAAiE;QACjE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,uEAAuE;IACvE,uEAAuE;IACvE,uEAAuE;IAEvE;;;OAGG;IACH,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,uEAAuE;IACvE,uEAAuE;IACvE,uEAAuE;IAGvE,wDAAwD;IAC9C,aAAa,CAAC,CAAU;QAC9B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,mBAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAES,eAAe,CAAC,CAAU;QAChC,OAAO,CAAC,YAAY,mBAAK,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACO,kBAAkB,CAAC,CAAU;QACnC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,IAAK,CAAY,CAAC;IACpE,CAAC;IAED;;;;;;OAMG;IACO,kBAAkB,CAAC,CAAU;QACnC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAK,CAAY,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACO,cAAc,CACpB,KAA2D;QAG3D,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,aAAa,CAAA;QAC7B,CAAC;QAED,mDAAmD;QACnD,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,SAAgC,CAAC;QACjD,CAAC;QAED,iCAAiC;QACjC,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,SAA+B,CAAC;QAChD,CAAC;QAED,iDAAiD;QACjD,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,QAAwC,CAAC;QACzD,CAAC;QAED,2EAA2E;QAC3E,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,OAAwC,CAAC;QACzD,CAAC;QAED,8CAA8C;QAC9C,MAAM,IAAI,+BAAc,CAAC,+BAAc,CAAC,eAAe,EAAE,uGAAuG,CAAC,CAAC;IACtK,CAAC;IAGD;;;;;;;OAOG;IACG,IAAI,CACN,OAAe,EACf,KAAe;;YAEf,MAAM,UAAU,GAAG,IAAI,2BAAS,CAAC;gBAC7B,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"A-Entity.class.js","sourceRoot":"","sources":["../../../../src/global/A-Entity/A-Entity.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,7 +51,7 @@ function A_Feature_Define(config = {}) {
|
|
|
51
51
|
name: `${target.constructor.name}.${name}`,
|
|
52
52
|
handler: propertyKey,
|
|
53
53
|
invoke: invoke,
|
|
54
|
-
template: config.template && config.template.length ? config.template.map(item => (Object.assign(Object.assign({}, item), { before: item.before ||
|
|
54
|
+
template: config.template && config.template.length ? config.template.map(item => (Object.assign(Object.assign({}, item), { before: item.before || '', after: item.after || '', behavior: item.behavior || 'sync', throwOnError: true, override: item.override || '' }))) : [],
|
|
55
55
|
});
|
|
56
56
|
// Update the metadata of the container with the new Feature definition
|
|
57
57
|
A_Context_class_1.A_Context
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"A-Feature-Define.decorator.js","sourceRoot":"","sources":["../../../../src/global/A-Feature/A-Feature-Define.decorator.ts"],"names":[],"mappings":";;AA8BA,
|
|
1
|
+
{"version":3,"file":"A-Feature-Define.decorator.js","sourceRoot":"","sources":["../../../../src/global/A-Feature/A-Feature-Define.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,15 +9,16 @@ const A_Component_constants_1 = require("../A-Component/A-Component.constants");
|
|
|
9
9
|
const A_Feature_error_1 = require("./A-Feature.error");
|
|
10
10
|
function A_Feature_Extend(param1) {
|
|
11
11
|
return function (target, propertyKey, descriptor) {
|
|
12
|
-
var _a
|
|
12
|
+
var _a;
|
|
13
13
|
// for error messages
|
|
14
14
|
const componentName = ((_a = target === null || target === void 0 ? void 0 : target.constructor) === null || _a === void 0 ? void 0 : _a.name) || String(target) || 'Unknown';
|
|
15
15
|
if (!A_TypeGuards_helper_1.A_TypeGuards.isAllowedForFeatureExtension(target))
|
|
16
16
|
throw new A_Feature_error_1.A_FeatureError(A_Feature_error_1.A_FeatureError.FeatureExtensionError, `A-Feature-Extend cannot be applied on the ${componentName} level`);
|
|
17
17
|
let targetRegexp;
|
|
18
18
|
let behavior = 'sync';
|
|
19
|
-
let before =
|
|
20
|
-
let after =
|
|
19
|
+
let before = '';
|
|
20
|
+
let after = '';
|
|
21
|
+
let override = '';
|
|
21
22
|
let include = [];
|
|
22
23
|
let exclude = [];
|
|
23
24
|
let throwOnError = true;
|
|
@@ -37,14 +38,21 @@ function A_Feature_Extend(param1) {
|
|
|
37
38
|
targetRegexp = buildTargetRegexp(param1, include, exclude, propertyKey);
|
|
38
39
|
behavior = param1.behavior || behavior;
|
|
39
40
|
throwOnError = param1.throwOnError !== undefined ? param1.throwOnError : throwOnError;
|
|
40
|
-
before = (
|
|
41
|
-
?
|
|
42
|
-
:
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
before = A_TypeGuards_helper_1.A_TypeGuards.isArray(param1.before)
|
|
42
|
+
? new RegExp(`^${param1.before.join('|').replace(/\./g, '\\.')}$`).source
|
|
43
|
+
: param1.before instanceof RegExp
|
|
44
|
+
? param1.before.source
|
|
45
|
+
: '';
|
|
46
|
+
after = A_TypeGuards_helper_1.A_TypeGuards.isArray(param1.after)
|
|
47
|
+
? new RegExp(`^${param1.after.join('|').replace(/\./g, '\\.')}$`).source
|
|
48
|
+
: param1.after instanceof RegExp
|
|
49
|
+
? param1.after.source
|
|
50
|
+
: '';
|
|
51
|
+
override = A_TypeGuards_helper_1.A_TypeGuards.isArray(param1.override)
|
|
52
|
+
? new RegExp(`^${param1.override.join('|').replace(/\./g, '\\.')}$`).source
|
|
53
|
+
: param1.override instanceof RegExp
|
|
54
|
+
? param1.override.source
|
|
55
|
+
: '';
|
|
48
56
|
break;
|
|
49
57
|
default:
|
|
50
58
|
targetRegexp = new RegExp(`^.*${propertyKey.replace(/\./g, '\\.')}$`);
|
|
@@ -75,7 +83,8 @@ function A_Feature_Extend(param1) {
|
|
|
75
83
|
behavior,
|
|
76
84
|
before,
|
|
77
85
|
after,
|
|
78
|
-
throwOnError
|
|
86
|
+
throwOnError,
|
|
87
|
+
override
|
|
79
88
|
};
|
|
80
89
|
if (existedIndex !== -1) {
|
|
81
90
|
// Update the existing method in the metadata
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"A-Feature-Extend.decorator.js","sourceRoot":"","sources":["../../../../src/global/A-Feature/A-Feature-Extend.decorator.ts"],"names":[],"mappings":";;AAyDA,
|
|
1
|
+
{"version":3,"file":"A-Feature-Extend.decorator.js","sourceRoot":"","sources":["../../../../src/global/A-Feature/A-Feature-Extend.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -216,7 +216,7 @@ class A_Feature {
|
|
|
216
216
|
// 1) save feature name
|
|
217
217
|
this._name = params.name;
|
|
218
218
|
// 2) get scope from where feature is called
|
|
219
|
-
const componentScope = A_Context_class_1.A_Context.scope(params.component);
|
|
219
|
+
const componentScope = params.scope ? params.scope : A_Context_class_1.A_Context.scope(params.component);
|
|
220
220
|
// 3) create caller wrapper for the simple injection of the caller component
|
|
221
221
|
this._caller = new A_Caller_class_1.A_Caller(params.component);
|
|
222
222
|
// 4) allocate new scope for the feature
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"A-Feature.class.js","sourceRoot":"","sources":["../../../../src/global/A-Feature/A-Feature.class.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"A-Feature.class.js","sourceRoot":"","sources":["../../../../src/global/A-Feature/A-Feature.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,12 @@ export type A_TYPES__Feature_InitWithComponent<T extends A_TYPES__FeatureAvailab
|
|
|
32
32
|
* [!] Could be Container, Entity, Component or Command
|
|
33
33
|
*/
|
|
34
34
|
component: T;
|
|
35
|
+
/**
|
|
36
|
+
* In case when Entity is not attached to the scope can be used to transparently show dependencies
|
|
37
|
+
*
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
scope?: A_Scope;
|
|
35
41
|
};
|
|
36
42
|
/**
|
|
37
43
|
* Feature initialization type using template
|
|
@@ -220,11 +226,16 @@ export type A_TYPES__FeatureExtendDecoratorConfig = {
|
|
|
220
226
|
* ```ts
|
|
221
227
|
* @A_Feature.Extend({
|
|
222
228
|
* name: 'load',
|
|
223
|
-
* before: ['Component1.methodName',
|
|
229
|
+
* before: ['Component1.methodName', 'Component2.methodName2']
|
|
230
|
+
* })
|
|
231
|
+
* // OR
|
|
232
|
+
* @A_Feature.Extend({
|
|
233
|
+
* name: 'load',
|
|
234
|
+
* before: /Component2\..+/
|
|
224
235
|
* })
|
|
225
236
|
* ```
|
|
226
237
|
*/
|
|
227
|
-
before: Array<string | RegExp
|
|
238
|
+
before: Array<string> | RegExp;
|
|
228
239
|
/**
|
|
229
240
|
* Allows to define the order of the execution of the method.
|
|
230
241
|
*
|
|
@@ -235,18 +246,27 @@ export type A_TYPES__FeatureExtendDecoratorConfig = {
|
|
|
235
246
|
* ```ts
|
|
236
247
|
* @A_Feature.Extend({
|
|
237
248
|
* name: 'load',
|
|
238
|
-
*
|
|
249
|
+
* after: ['Component1.methodName', 'Component2.methodName2']
|
|
250
|
+
* })
|
|
251
|
+
* // OR
|
|
252
|
+
* @A_Feature.Extend({
|
|
253
|
+
* name: 'load',
|
|
254
|
+
* after: /Component2\..+/
|
|
239
255
|
* })
|
|
240
256
|
* ```
|
|
241
257
|
*
|
|
242
258
|
*/
|
|
243
|
-
after: Array<string | RegExp
|
|
259
|
+
after: Array<string> | RegExp;
|
|
244
260
|
/**
|
|
245
261
|
* Indicates whether to throw an error if the step fails.
|
|
246
262
|
*
|
|
247
263
|
* [!] By default is true
|
|
248
264
|
*/
|
|
249
265
|
throwOnError: boolean;
|
|
266
|
+
/**
|
|
267
|
+
* Allows to override particular steps in the feature sequence by provided names [Component].[Method] or by regexp
|
|
268
|
+
*/
|
|
269
|
+
override: Array<string> | RegExp;
|
|
250
270
|
};
|
|
251
271
|
/**
|
|
252
272
|
* Scope item that can be used in A_Extend decorator configuration
|
|
@@ -293,18 +313,22 @@ export type A_TYPES__FeatureExtendDecoratorMeta = {
|
|
|
293
313
|
* [!] In case the method has circular dependencies it will Throw an error.
|
|
294
314
|
*
|
|
295
315
|
*/
|
|
296
|
-
before: string
|
|
316
|
+
before: string;
|
|
297
317
|
/**
|
|
298
318
|
* Allows to define the order of the execution of the method.
|
|
299
319
|
*
|
|
300
320
|
* [!] In case the method has circular dependencies it will Throw an error.
|
|
301
321
|
*
|
|
302
322
|
*/
|
|
303
|
-
after: string
|
|
323
|
+
after: string;
|
|
304
324
|
/**
|
|
305
325
|
* Indicates whether to throw an error if the step fails.
|
|
306
326
|
*
|
|
307
327
|
* [!] By default is true
|
|
308
328
|
*/
|
|
309
329
|
throwOnError: boolean;
|
|
330
|
+
/**
|
|
331
|
+
* Allows to override particular steps in the feature sequence by provided names [Component].[Method] or by regexp
|
|
332
|
+
*/
|
|
333
|
+
override: string;
|
|
310
334
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"A-Feature.types.js","sourceRoot":"","sources":["../../../../src/global/A-Feature/A-Feature.types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"A-Feature.types.js","sourceRoot":"","sources":["../../../../src/global/A-Feature/A-Feature.types.ts"],"names":[],"mappings":";;;AAiFA;;GAEG;AACH,IAAY,qBAiBX;AAjBD,WAAY,qBAAqB;IAC7B;;OAEG;IACH,oDAA2B,CAAA;IAC3B;;OAEG;IACH,kDAAyB,CAAA;IACzB;;OAEG;IACH,gDAAuB,CAAA;IACvB;;OAEG;IACH,oDAA2B,CAAA;AAC/B,CAAC,EAjBW,qBAAqB,qCAArB,qBAAqB,QAiBhC"}
|
|
@@ -65,20 +65,24 @@ export type A_TYPES__A_StageStep = {
|
|
|
65
65
|
* [!] In case the method has circular dependencies it will Throw an error.
|
|
66
66
|
*
|
|
67
67
|
*/
|
|
68
|
-
before: string
|
|
68
|
+
before: string;
|
|
69
69
|
/**
|
|
70
70
|
* Allows to define the order of the execution of the method.
|
|
71
71
|
*
|
|
72
72
|
* [!] In case the method has circular dependencies it will Throw an error.
|
|
73
73
|
*
|
|
74
74
|
*/
|
|
75
|
-
after: string
|
|
75
|
+
after: string;
|
|
76
76
|
/**
|
|
77
77
|
* Indicates whether to throw an error if the step fails.
|
|
78
78
|
*
|
|
79
79
|
* [!] By default is true
|
|
80
80
|
*/
|
|
81
81
|
throwOnError: boolean;
|
|
82
|
+
/**
|
|
83
|
+
*
|
|
84
|
+
*/
|
|
85
|
+
override: string;
|
|
82
86
|
};
|
|
83
87
|
export type A_TYPES__Stage_Serialized = {
|
|
84
88
|
/**
|
|
@@ -13,9 +13,8 @@ class A_StepsManager {
|
|
|
13
13
|
this.sortedEntities = [];
|
|
14
14
|
}
|
|
15
15
|
prepareSteps(entities) {
|
|
16
|
-
return entities
|
|
17
|
-
|
|
18
|
-
});
|
|
16
|
+
return entities
|
|
17
|
+
.map(step => (Object.assign(Object.assign({}, step), { behavior: step.behavior || 'sync', before: step.before || '', after: step.after || '', override: step.override || '', throwOnError: false })));
|
|
19
18
|
}
|
|
20
19
|
ID(step) {
|
|
21
20
|
return `${typeof step.component === 'string' ? step.component : step.component.name}.${step.handler}`;
|
|
@@ -24,34 +23,36 @@ class A_StepsManager {
|
|
|
24
23
|
if (this._isBuilt)
|
|
25
24
|
return;
|
|
26
25
|
this._isBuilt = true;
|
|
26
|
+
// Filter override
|
|
27
|
+
this.entities = this.entities
|
|
28
|
+
.filter((step, i, self) => !self.some(s => s.override ? new RegExp(s.override).test(this.ID(step)) : false));
|
|
27
29
|
// Initialize graph nodes
|
|
28
30
|
this.entities.forEach(entity => this.graph.set(this.ID(entity), new Set()));
|
|
29
31
|
// Add directed edges based on 'before' and 'after'
|
|
30
32
|
this.entities.forEach(entity => {
|
|
31
33
|
const entityId = this.ID(entity);
|
|
32
|
-
const { before = [], after = [] } = entity;
|
|
33
34
|
// Add edges for 'before' dependencies
|
|
34
35
|
// If entity should execute before targets, then targets depend on entity
|
|
35
36
|
// So we add edges: target -> entity (target depends on entity)
|
|
36
|
-
before
|
|
37
|
-
const targets = this.matchEntities(entityId,
|
|
37
|
+
if (entity.before) {
|
|
38
|
+
const targets = this.matchEntities(entityId, entity.before);
|
|
38
39
|
targets.forEach(target => {
|
|
39
40
|
if (!this.graph.has(target))
|
|
40
41
|
this.graph.set(target, new Set());
|
|
41
42
|
this.graph.get(target).add(entityId); // target depends on entity
|
|
42
43
|
});
|
|
43
|
-
}
|
|
44
|
+
}
|
|
44
45
|
// Add edges for 'after' dependencies
|
|
45
46
|
// If entity should execute after sources, then entity depends on sources
|
|
46
47
|
// So we add edges: entity -> source (entity depends on source)
|
|
47
|
-
after
|
|
48
|
-
const sources = this.matchEntities(entityId,
|
|
48
|
+
if (entity.after) {
|
|
49
|
+
const sources = this.matchEntities(entityId, entity.after);
|
|
49
50
|
sources.forEach(source => {
|
|
50
51
|
if (!this.graph.has(entityId))
|
|
51
52
|
this.graph.set(entityId, new Set());
|
|
52
53
|
this.graph.get(entityId).add(source); // entity depends on source
|
|
53
54
|
});
|
|
54
|
-
}
|
|
55
|
+
}
|
|
55
56
|
});
|
|
56
57
|
}
|
|
57
58
|
// Match entities by name or regex
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"A-StepManager.class.js","sourceRoot":"","sources":["../../../../src/global/A-StepManager/A-StepManager.class.ts"],"names":[],"mappings":";;;AAEA,4DAAmD;AAEnD,+DAA2D;AAE3D,MAAa,cAAc;IAWvB,YAAY,QAA4D;QAFhE,aAAQ,GAAY,KAAK,CAAC;QAG9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAE7B,CAAC;IAEO,YAAY,CAChB,QAA4D;QAE5D,OAAO,QAAQ,
|
|
1
|
+
{"version":3,"file":"A-StepManager.class.js","sourceRoot":"","sources":["../../../../src/global/A-StepManager/A-StepManager.class.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adaas/a-concept",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.24",
|
|
4
4
|
"description": "A-Concept is a framework to build new Applications within or outside the ADAAS ecosystem. This framework is designed to be modular structure regardless environment and program goal.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -91,18 +91,22 @@ export function A_Abstraction_Extend(
|
|
|
91
91
|
behavior: config.behavior || 'sync',
|
|
92
92
|
throwOnError: config.throwOnError !== undefined ? config.throwOnError : true,
|
|
93
93
|
|
|
94
|
-
before: (config.before
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
94
|
+
before: A_TypeGuards.isArray(config.before)
|
|
95
|
+
? new RegExp(`^${config.before.join('|').replace(/\./g, '\\.')}$`).source
|
|
96
|
+
: config.before instanceof RegExp
|
|
97
|
+
? config.before.source
|
|
98
|
+
: '',
|
|
99
|
+
after: A_TypeGuards.isArray(config.after)
|
|
100
|
+
? new RegExp(`^${config.after.join('|').replace(/\./g, '\\.')}$`).source
|
|
101
|
+
: config.after instanceof RegExp
|
|
102
|
+
? config.after.source
|
|
103
|
+
: '',
|
|
104
|
+
|
|
105
|
+
override: A_TypeGuards.isArray(config.override)
|
|
106
|
+
? new RegExp(`^${config.override.join('|').replace(/\./g, '\\.')}$`).source
|
|
107
|
+
: config.after instanceof RegExp
|
|
108
|
+
? config.after.source
|
|
109
|
+
: '',
|
|
106
110
|
}
|
|
107
111
|
|
|
108
112
|
if (existedIndex !== -1) {
|
|
@@ -47,9 +47,10 @@ export class A_ComponentMeta extends A_Meta<A_TYPES__ComponentMeta> {
|
|
|
47
47
|
name: extension.name,
|
|
48
48
|
handler: extension.handler,
|
|
49
49
|
behavior: extension.behavior,
|
|
50
|
-
before: extension.before ||
|
|
51
|
-
after: extension.after ||
|
|
50
|
+
before: extension.before || '',
|
|
51
|
+
after: extension.after || '',
|
|
52
52
|
throwOnError: extension.throwOnError || true,
|
|
53
|
+
override:''
|
|
53
54
|
});
|
|
54
55
|
|
|
55
56
|
});
|
|
@@ -64,13 +64,8 @@ export class A_ContainerMeta extends A_Meta<A_TYPES__ContainerMeta> {
|
|
|
64
64
|
const args = injections?.get(extension.handler) || [];
|
|
65
65
|
|
|
66
66
|
steps.push({
|
|
67
|
-
|
|
68
|
-
handler: extension.handler,
|
|
67
|
+
...extension,
|
|
69
68
|
args,
|
|
70
|
-
before: extension.before,
|
|
71
|
-
behavior: extension.behavior,
|
|
72
|
-
after: extension.after,
|
|
73
|
-
throwOnError: extension.throwOnError,
|
|
74
69
|
});
|
|
75
70
|
|
|
76
71
|
});
|
|
@@ -104,9 +99,11 @@ export class A_ContainerMeta extends A_Meta<A_TYPES__ContainerMeta> {
|
|
|
104
99
|
name: extension.name,
|
|
105
100
|
handler: extension.handler,
|
|
106
101
|
behavior: extension.behavior,
|
|
107
|
-
before: extension.before ||
|
|
108
|
-
after: extension.after ||
|
|
102
|
+
before: extension.before || '',
|
|
103
|
+
after: extension.after || '',
|
|
109
104
|
throwOnError: extension.throwOnError || true,
|
|
105
|
+
override: ''
|
|
106
|
+
|
|
110
107
|
});
|
|
111
108
|
|
|
112
109
|
});
|
|
@@ -87,10 +87,12 @@ export function A_Feature_Define(
|
|
|
87
87
|
template: config.template && config.template.length ? config.template.map(
|
|
88
88
|
item => ({
|
|
89
89
|
...item,
|
|
90
|
-
before: item.before ||
|
|
91
|
-
after: item.after ||
|
|
90
|
+
before: item.before || '',
|
|
91
|
+
after: item.after || '',
|
|
92
92
|
behavior: item.behavior || 'sync',
|
|
93
|
-
throwOnError: true
|
|
93
|
+
throwOnError: true,
|
|
94
|
+
override: item.override || ''
|
|
95
|
+
|
|
94
96
|
})
|
|
95
97
|
) : [],
|
|
96
98
|
});
|
|
@@ -74,8 +74,9 @@ export function A_Feature_Extend(
|
|
|
74
74
|
|
|
75
75
|
let targetRegexp: RegExp;
|
|
76
76
|
let behavior: 'sync' | 'async' = 'sync';
|
|
77
|
-
let before: string
|
|
78
|
-
let after: string
|
|
77
|
+
let before: string = '';
|
|
78
|
+
let after: string = '';
|
|
79
|
+
let override: string = '';
|
|
79
80
|
let include: Array<A_TYPES__FeatureExtendDecoratorScopeItem> = [];
|
|
80
81
|
let exclude: Array<A_TYPES__FeatureExtendDecoratorScopeItem> = [];
|
|
81
82
|
let throwOnError: boolean = true;
|
|
@@ -104,19 +105,22 @@ export function A_Feature_Extend(
|
|
|
104
105
|
behavior = param1.behavior || behavior;
|
|
105
106
|
throwOnError = param1.throwOnError !== undefined ? param1.throwOnError : throwOnError;
|
|
106
107
|
|
|
107
|
-
before = param1.before
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
108
|
+
before = A_TypeGuards.isArray(param1.before)
|
|
109
|
+
? new RegExp(`^${param1.before.join('|').replace(/\./g, '\\.')}$`).source
|
|
110
|
+
: param1.before instanceof RegExp
|
|
111
|
+
? param1.before.source
|
|
112
|
+
: ''
|
|
113
|
+
after = A_TypeGuards.isArray(param1.after)
|
|
114
|
+
? new RegExp(`^${param1.after.join('|').replace(/\./g, '\\.')}$`).source
|
|
115
|
+
: param1.after instanceof RegExp
|
|
116
|
+
? param1.after.source
|
|
117
|
+
: ''
|
|
118
|
+
|
|
119
|
+
override = A_TypeGuards.isArray(param1.override)
|
|
120
|
+
? new RegExp(`^${param1.override.join('|').replace(/\./g, '\\.')}$`).source
|
|
121
|
+
: param1.override instanceof RegExp
|
|
122
|
+
? param1.override.source
|
|
123
|
+
: ''
|
|
120
124
|
break;
|
|
121
125
|
|
|
122
126
|
default:
|
|
@@ -161,7 +165,8 @@ export function A_Feature_Extend(
|
|
|
161
165
|
behavior,
|
|
162
166
|
before,
|
|
163
167
|
after,
|
|
164
|
-
throwOnError
|
|
168
|
+
throwOnError,
|
|
169
|
+
override
|
|
165
170
|
}
|
|
166
171
|
|
|
167
172
|
if (existedIndex !== -1) {
|
|
@@ -285,7 +285,7 @@ export class A_Feature<T extends A_TYPES__FeatureAvailableComponents = A_TYPES__
|
|
|
285
285
|
this._name = params.name;
|
|
286
286
|
|
|
287
287
|
// 2) get scope from where feature is called
|
|
288
|
-
const componentScope = A_Context.scope(params.component);
|
|
288
|
+
const componentScope = params.scope ? params.scope : A_Context.scope(params.component);
|
|
289
289
|
|
|
290
290
|
// 3) create caller wrapper for the simple injection of the caller component
|
|
291
291
|
this._caller = new A_Caller<T>(params.component);
|
|
@@ -38,6 +38,13 @@ export type A_TYPES__Feature_InitWithComponent<T extends A_TYPES__FeatureAvailab
|
|
|
38
38
|
* [!] Could be Container, Entity, Component or Command
|
|
39
39
|
*/
|
|
40
40
|
component: T,
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* In case when Entity is not attached to the scope can be used to transparently show dependencies
|
|
44
|
+
*
|
|
45
|
+
*
|
|
46
|
+
*/
|
|
47
|
+
scope?: A_Scope
|
|
41
48
|
}
|
|
42
49
|
/**
|
|
43
50
|
* Feature initialization type using template
|
|
@@ -259,11 +266,16 @@ export type A_TYPES__FeatureExtendDecoratorConfig = {
|
|
|
259
266
|
* ```ts
|
|
260
267
|
* @A_Feature.Extend({
|
|
261
268
|
* name: 'load',
|
|
262
|
-
* before: ['Component1.methodName',
|
|
269
|
+
* before: ['Component1.methodName', 'Component2.methodName2']
|
|
270
|
+
* })
|
|
271
|
+
* // OR
|
|
272
|
+
* @A_Feature.Extend({
|
|
273
|
+
* name: 'load',
|
|
274
|
+
* before: /Component2\..+/
|
|
263
275
|
* })
|
|
264
276
|
* ```
|
|
265
277
|
*/
|
|
266
|
-
before: Array<string | RegExp
|
|
278
|
+
before: Array<string> | RegExp
|
|
267
279
|
|
|
268
280
|
/**
|
|
269
281
|
* Allows to define the order of the execution of the method.
|
|
@@ -275,19 +287,28 @@ export type A_TYPES__FeatureExtendDecoratorConfig = {
|
|
|
275
287
|
* ```ts
|
|
276
288
|
* @A_Feature.Extend({
|
|
277
289
|
* name: 'load',
|
|
278
|
-
*
|
|
290
|
+
* after: ['Component1.methodName', 'Component2.methodName2']
|
|
291
|
+
* })
|
|
292
|
+
* // OR
|
|
293
|
+
* @A_Feature.Extend({
|
|
294
|
+
* name: 'load',
|
|
295
|
+
* after: /Component2\..+/
|
|
279
296
|
* })
|
|
280
297
|
* ```
|
|
281
298
|
*
|
|
282
299
|
*/
|
|
283
|
-
after: Array<string | RegExp
|
|
284
|
-
|
|
300
|
+
after: Array<string> | RegExp
|
|
285
301
|
/**
|
|
286
302
|
* Indicates whether to throw an error if the step fails.
|
|
287
303
|
*
|
|
288
304
|
* [!] By default is true
|
|
289
305
|
*/
|
|
290
306
|
throwOnError: boolean
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Allows to override particular steps in the feature sequence by provided names [Component].[Method] or by regexp
|
|
310
|
+
*/
|
|
311
|
+
override: Array<string> | RegExp
|
|
291
312
|
}
|
|
292
313
|
/**
|
|
293
314
|
* Scope item that can be used in A_Extend decorator configuration
|
|
@@ -342,20 +363,24 @@ export type A_TYPES__FeatureExtendDecoratorMeta = {
|
|
|
342
363
|
* [!] In case the method has circular dependencies it will Throw an error.
|
|
343
364
|
*
|
|
344
365
|
*/
|
|
345
|
-
before: string
|
|
366
|
+
before: string
|
|
346
367
|
/**
|
|
347
368
|
* Allows to define the order of the execution of the method.
|
|
348
369
|
*
|
|
349
370
|
* [!] In case the method has circular dependencies it will Throw an error.
|
|
350
371
|
*
|
|
351
372
|
*/
|
|
352
|
-
after: string
|
|
373
|
+
after: string
|
|
353
374
|
/**
|
|
354
375
|
* Indicates whether to throw an error if the step fails.
|
|
355
376
|
*
|
|
356
377
|
* [!] By default is true
|
|
357
378
|
*/
|
|
358
|
-
throwOnError: boolean
|
|
379
|
+
throwOnError: boolean,
|
|
380
|
+
/**
|
|
381
|
+
* Allows to override particular steps in the feature sequence by provided names [Component].[Method] or by regexp
|
|
382
|
+
*/
|
|
383
|
+
override: string
|
|
359
384
|
}
|
|
360
385
|
|
|
361
386
|
|
|
@@ -76,7 +76,7 @@ export type A_TYPES__A_StageStep = {
|
|
|
76
76
|
* [!] In case the method has circular dependencies it will Throw an error.
|
|
77
77
|
*
|
|
78
78
|
*/
|
|
79
|
-
before: string
|
|
79
|
+
before: string
|
|
80
80
|
|
|
81
81
|
/**
|
|
82
82
|
* Allows to define the order of the execution of the method.
|
|
@@ -84,7 +84,7 @@ export type A_TYPES__A_StageStep = {
|
|
|
84
84
|
* [!] In case the method has circular dependencies it will Throw an error.
|
|
85
85
|
*
|
|
86
86
|
*/
|
|
87
|
-
after: string
|
|
87
|
+
after: string,
|
|
88
88
|
|
|
89
89
|
/**
|
|
90
90
|
* Indicates whether to throw an error if the step fails.
|
|
@@ -92,6 +92,11 @@ export type A_TYPES__A_StageStep = {
|
|
|
92
92
|
* [!] By default is true
|
|
93
93
|
*/
|
|
94
94
|
throwOnError: boolean
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
*
|
|
98
|
+
*/
|
|
99
|
+
override: string
|
|
95
100
|
}
|
|
96
101
|
|
|
97
102
|
|
|
@@ -28,16 +28,16 @@ export class A_StepsManager {
|
|
|
28
28
|
private prepareSteps(
|
|
29
29
|
entities: Array<A_TYPES__FeatureDefineDecoratorTemplateItem>
|
|
30
30
|
): Array<A_TYPES__A_StageStep> {
|
|
31
|
-
return entities
|
|
32
|
-
|
|
31
|
+
return entities
|
|
32
|
+
.map(step => ({
|
|
33
33
|
...step,
|
|
34
34
|
|
|
35
35
|
behavior: step.behavior || 'sync',
|
|
36
|
-
before: step.before ||
|
|
37
|
-
after: step.after ||
|
|
36
|
+
before: step.before || '',
|
|
37
|
+
after: step.after || '',
|
|
38
|
+
override: step.override || '',
|
|
38
39
|
throwOnError: false
|
|
39
|
-
};
|
|
40
|
-
});
|
|
40
|
+
}));
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
private ID(step: A_TYPES__A_StageStep) {
|
|
@@ -47,36 +47,42 @@ export class A_StepsManager {
|
|
|
47
47
|
private buildGraph() {
|
|
48
48
|
if (this._isBuilt) return;
|
|
49
49
|
this._isBuilt = true;
|
|
50
|
+
|
|
51
|
+
// Filter override
|
|
52
|
+
this.entities = this.entities
|
|
53
|
+
.filter((step, i, self) =>
|
|
54
|
+
!self.some(s => s.override ? new RegExp(s.override).test(this.ID(step)) : false)
|
|
55
|
+
);
|
|
56
|
+
|
|
50
57
|
// Initialize graph nodes
|
|
51
58
|
this.entities.forEach(entity => this.graph.set(this.ID(entity), new Set()));
|
|
52
59
|
|
|
53
60
|
// Add directed edges based on 'before' and 'after'
|
|
54
61
|
this.entities.forEach(entity => {
|
|
55
62
|
const entityId = this.ID(entity);
|
|
56
|
-
const { before = [], after = [] } = entity;
|
|
57
63
|
|
|
58
64
|
// Add edges for 'before' dependencies
|
|
59
65
|
// If entity should execute before targets, then targets depend on entity
|
|
60
66
|
// So we add edges: target -> entity (target depends on entity)
|
|
61
|
-
before
|
|
62
|
-
const targets = this.matchEntities(entityId,
|
|
67
|
+
if (entity.before) {
|
|
68
|
+
const targets = this.matchEntities(entityId, entity.before);
|
|
63
69
|
targets.forEach(target => {
|
|
64
70
|
if (!this.graph.has(target)) this.graph.set(target, new Set());
|
|
65
71
|
this.graph.get(target)!.add(entityId); // target depends on entity
|
|
66
72
|
});
|
|
67
|
-
}
|
|
73
|
+
}
|
|
68
74
|
|
|
69
75
|
// Add edges for 'after' dependencies
|
|
70
76
|
// If entity should execute after sources, then entity depends on sources
|
|
71
77
|
// So we add edges: entity -> source (entity depends on source)
|
|
72
|
-
after
|
|
73
|
-
const sources = this.matchEntities(entityId,
|
|
78
|
+
if (entity.after) {
|
|
79
|
+
const sources = this.matchEntities(entityId, entity.after);
|
|
74
80
|
|
|
75
81
|
sources.forEach(source => {
|
|
76
82
|
if (!this.graph.has(entityId)) this.graph.set(entityId, new Set());
|
|
77
83
|
this.graph.get(entityId)!.add(source); // entity depends on source
|
|
78
84
|
});
|
|
79
|
-
}
|
|
85
|
+
}
|
|
80
86
|
});
|
|
81
87
|
}
|
|
82
88
|
|
package/tests/A-Concept.test.ts
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
import { A_Caller } from '@adaas/a-concept/global/A-Caller/A_Caller.class';
|
|
1
2
|
import './test.setup';
|
|
2
3
|
import { A_Component } from "@adaas/a-concept/global/A-Component/A-Component.class";
|
|
3
4
|
import { A_Concept } from "@adaas/a-concept/global/A-Concept/A-Concept.class";
|
|
4
5
|
import { A_Container } from "@adaas/a-concept/global/A-Container/A-Container.class";
|
|
5
6
|
import { A_Context } from "@adaas/a-concept/global/A-Context/A-Context.class";
|
|
6
7
|
import { A_Entity } from "@adaas/a-concept/global/A-Entity/A-Entity.class";
|
|
8
|
+
import { A_TYPES__Entity_Init, A_TYPES__Entity_Serialized } from '@adaas/a-concept/global/A-Entity/A-Entity.types';
|
|
7
9
|
import { A_Fragment } from "@adaas/a-concept/global/A-Fragment/A-Fragment.class";
|
|
10
|
+
import { A_Inject } from '@adaas/a-concept/global/A-Inject/A-Inject.decorator';
|
|
8
11
|
import { A_Scope } from "@adaas/a-concept/global/A-Scope/A-Scope.class";
|
|
12
|
+
import { A_Feature } from '@adaas/a-concept/global/A-Feature/A-Feature.class';
|
|
13
|
+
import { A_TYPES__EntityFeatures } from '@adaas/a-concept/global/A-Entity/A-Entity.constants';
|
|
9
14
|
|
|
10
15
|
|
|
11
16
|
jest.retryTimes(0);
|
|
@@ -105,7 +110,7 @@ describe('A-Concept tests', () => {
|
|
|
105
110
|
expect(concept.scope.resolve(MyContext)).toEqual(sharedContext);
|
|
106
111
|
expect(concept.scope.resolve(MyContext)).toEqual(sharedContext);
|
|
107
112
|
});
|
|
108
|
-
|
|
113
|
+
it('Should allow to register multiple containers', async () => {
|
|
109
114
|
A_Context.reset();
|
|
110
115
|
|
|
111
116
|
class MyContainerA extends A_Container { }
|
|
@@ -123,9 +128,53 @@ describe('A-Concept tests', () => {
|
|
|
123
128
|
});
|
|
124
129
|
|
|
125
130
|
expect(containerA.scope.resolve(MyContainerA)).toBeInstanceOf(MyContainerA);
|
|
126
|
-
expect(containerB.scope.resolve(MyContainerB)).toBeInstanceOf(MyContainerB);
|
|
131
|
+
expect(containerB.scope.resolve(MyContainerB)).toBeInstanceOf(MyContainerB);
|
|
132
|
+
})
|
|
133
|
+
it('Should have different entity behavior depending on the container', async () => {
|
|
134
|
+
A_Context.reset();
|
|
135
|
+
class MyEntityA extends A_Entity { testValue!: string; }
|
|
136
|
+
|
|
137
|
+
class ComponentA extends A_Component {
|
|
138
|
+
@A_Feature.Extend({ name: A_TYPES__EntityFeatures.LOAD })
|
|
139
|
+
async createEntityInstance(
|
|
140
|
+
@A_Inject(A_Caller) caller: MyEntityA
|
|
141
|
+
) {
|
|
142
|
+
caller.testValue = 'ContainerA';
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
class ComponentB extends A_Component {
|
|
147
|
+
@A_Feature.Extend({ name: A_TYPES__EntityFeatures.LOAD })
|
|
148
|
+
async createEntityInstance(
|
|
149
|
+
@A_Inject(A_Caller) caller: MyEntityA
|
|
150
|
+
) {
|
|
151
|
+
caller.testValue = 'ContainerB';
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
const containerA = new A_Container({ name: 'ContainerA', components: [ComponentA], entities: [MyEntityA] });
|
|
156
|
+
const containerB = new A_Container({ name: 'ContainerB', components: [ComponentB], entities: [MyEntityA] });
|
|
157
|
+
|
|
158
|
+
const concept = new A_Concept({
|
|
159
|
+
name: 'TestConcept',
|
|
160
|
+
containers: [
|
|
161
|
+
containerA,
|
|
162
|
+
containerB
|
|
163
|
+
]
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
const entityFromContainerA = new MyEntityA();
|
|
167
|
+
const entityFromContainerB = new MyEntityA();
|
|
168
|
+
|
|
169
|
+
// with registration
|
|
170
|
+
containerB.scope.register(entityFromContainerB)
|
|
171
|
+
await entityFromContainerB.load();
|
|
172
|
+
|
|
173
|
+
// without registration
|
|
174
|
+
await entityFromContainerA.load(containerA.scope);
|
|
127
175
|
|
|
128
|
-
|
|
129
|
-
|
|
176
|
+
expect(entityFromContainerA.testValue).toBe('ContainerA');
|
|
177
|
+
expect(entityFromContainerB.testValue).toBe('ContainerB');
|
|
178
|
+
})
|
|
130
179
|
|
|
131
180
|
});
|
package/tests/A-Feature.test.ts
CHANGED
|
@@ -63,8 +63,8 @@ describe('A-Feature tests', () => {
|
|
|
63
63
|
component: MyExtendedComponent,
|
|
64
64
|
handler: 'testHandler',
|
|
65
65
|
behavior: 'sync',
|
|
66
|
-
before:
|
|
67
|
-
after:
|
|
66
|
+
before: '',
|
|
67
|
+
after: ''
|
|
68
68
|
},
|
|
69
69
|
{
|
|
70
70
|
name: 'MyExtendedComponent.testHandler',
|
|
@@ -115,8 +115,8 @@ describe('A-Feature tests', () => {
|
|
|
115
115
|
component: 'MyExtendedComponent2',
|
|
116
116
|
handler: 'testHandler',
|
|
117
117
|
behavior: 'sync',
|
|
118
|
-
before:
|
|
119
|
-
after:
|
|
118
|
+
before: '',
|
|
119
|
+
after: ''
|
|
120
120
|
}]
|
|
121
121
|
})
|
|
122
122
|
async testHandler() { }
|
|
@@ -98,14 +98,14 @@ describe('A-StepManager tests', () => {
|
|
|
98
98
|
name: 'step5',
|
|
99
99
|
component: ComponentA,
|
|
100
100
|
handler: 'step5',
|
|
101
|
-
before:
|
|
102
|
-
after:
|
|
101
|
+
before: /^.*\.*step2$/.source,
|
|
102
|
+
after: /^.*\.*step6$/.source
|
|
103
103
|
},
|
|
104
104
|
{
|
|
105
105
|
name: 'step6',
|
|
106
106
|
component: ComponentA,
|
|
107
107
|
handler: 'step6',
|
|
108
|
-
before:
|
|
108
|
+
before: /^ComponentA\.step2$/.source
|
|
109
109
|
},
|
|
110
110
|
]);
|
|
111
111
|
|
|
@@ -162,7 +162,7 @@ describe('A-StepManager tests', () => {
|
|
|
162
162
|
name: 'step6',
|
|
163
163
|
component: ComponentA,
|
|
164
164
|
handler: 'step6',
|
|
165
|
-
before:
|
|
165
|
+
before: /.*/.source,
|
|
166
166
|
},
|
|
167
167
|
]);
|
|
168
168
|
|
|
@@ -213,13 +213,13 @@ describe('A-StepManager tests', () => {
|
|
|
213
213
|
name: 'step5',
|
|
214
214
|
component: ComponentA,
|
|
215
215
|
handler: 'step5',
|
|
216
|
-
before:
|
|
216
|
+
before: new RegExp('.*').source,
|
|
217
217
|
},
|
|
218
218
|
{
|
|
219
219
|
name: 'step6',
|
|
220
220
|
component: ComponentA,
|
|
221
221
|
handler: 'step6',
|
|
222
|
-
before:
|
|
222
|
+
before: new RegExp('.*').source,
|
|
223
223
|
},
|
|
224
224
|
]);
|
|
225
225
|
|
|
@@ -276,8 +276,8 @@ describe('A-StepManager tests', () => {
|
|
|
276
276
|
name: 'test',
|
|
277
277
|
component: ComponentA,
|
|
278
278
|
handler: 'test',
|
|
279
|
-
before:
|
|
280
|
-
after:
|
|
279
|
+
before: /^.*\.step(4|5)$/.source,
|
|
280
|
+
after: /^.*\.step(1|2)$/.source,
|
|
281
281
|
},
|
|
282
282
|
]);
|
|
283
283
|
|
|
@@ -326,8 +326,8 @@ describe('A-StepManager tests', () => {
|
|
|
326
326
|
name: 'inject',
|
|
327
327
|
component: ComponentA,
|
|
328
328
|
handler: 'inject',
|
|
329
|
-
before:
|
|
330
|
-
after:
|
|
329
|
+
before: /ComponentB\.read.+/ig.source,
|
|
330
|
+
after: 'ComponentA.initialize'
|
|
331
331
|
},
|
|
332
332
|
]);
|
|
333
333
|
|
|
@@ -342,5 +342,54 @@ describe('A-StepManager tests', () => {
|
|
|
342
342
|
]);
|
|
343
343
|
});
|
|
344
344
|
|
|
345
|
-
|
|
345
|
+
|
|
346
|
+
it('Should allow to override steps by regexp', async () => {
|
|
347
|
+
class ComponentA extends A_Component {
|
|
348
|
+
async step1() { }
|
|
349
|
+
async step2() { }
|
|
350
|
+
async step3() { }
|
|
351
|
+
async step4() { }
|
|
352
|
+
async step5() { }
|
|
353
|
+
async test() { }
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
const sm = new A_StepsManager([
|
|
357
|
+
{
|
|
358
|
+
name: 'step1',
|
|
359
|
+
component: ComponentA,
|
|
360
|
+
handler: 'step1',
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
name: 'step2',
|
|
364
|
+
component: ComponentA,
|
|
365
|
+
handler: 'step2',
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
name: 'step3',
|
|
369
|
+
component: ComponentA,
|
|
370
|
+
handler: 'step3',
|
|
371
|
+
override: /^.*\.step(4|5)$/.source
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
name: 'step4',
|
|
375
|
+
component: ComponentA,
|
|
376
|
+
handler: 'step4',
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
name: 'step5',
|
|
380
|
+
component: ComponentA,
|
|
381
|
+
handler: 'step5',
|
|
382
|
+
}
|
|
383
|
+
]);
|
|
384
|
+
|
|
385
|
+
|
|
386
|
+
const result = sm.toSortedArray();
|
|
387
|
+
|
|
388
|
+
expect(result).toEqual([
|
|
389
|
+
"ComponentA.step1",
|
|
390
|
+
"ComponentA.step2",
|
|
391
|
+
"ComponentA.step3",
|
|
392
|
+
]);
|
|
393
|
+
});
|
|
394
|
+
|
|
346
395
|
});
|