@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.
Files changed (33) hide show
  1. package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.js +16 -9
  2. package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.js.map +1 -1
  3. package/dist/src/global/A-Component/A-Component.meta.js +3 -2
  4. package/dist/src/global/A-Component/A-Component.meta.js.map +1 -1
  5. package/dist/src/global/A-Container/A-Container.meta.js +4 -11
  6. package/dist/src/global/A-Container/A-Container.meta.js.map +1 -1
  7. package/dist/src/global/A-Entity/A-Entity.class.js +2 -1
  8. package/dist/src/global/A-Entity/A-Entity.class.js.map +1 -1
  9. package/dist/src/global/A-Feature/A-Feature-Define.decorator.js +1 -1
  10. package/dist/src/global/A-Feature/A-Feature-Define.decorator.js.map +1 -1
  11. package/dist/src/global/A-Feature/A-Feature-Extend.decorator.js +21 -12
  12. package/dist/src/global/A-Feature/A-Feature-Extend.decorator.js.map +1 -1
  13. package/dist/src/global/A-Feature/A-Feature.class.js +1 -1
  14. package/dist/src/global/A-Feature/A-Feature.class.js.map +1 -1
  15. package/dist/src/global/A-Feature/A-Feature.types.d.ts +30 -6
  16. package/dist/src/global/A-Feature/A-Feature.types.js.map +1 -1
  17. package/dist/src/global/A-Stage/A-Stage.types.d.ts +6 -2
  18. package/dist/src/global/A-StepManager/A-StepManager.class.js +11 -10
  19. package/dist/src/global/A-StepManager/A-StepManager.class.js.map +1 -1
  20. package/package.json +1 -1
  21. package/src/global/A-Abstraction/A-Abstraction-Extend.decorator.ts +16 -12
  22. package/src/global/A-Component/A-Component.meta.ts +3 -2
  23. package/src/global/A-Container/A-Container.meta.ts +5 -8
  24. package/src/global/A-Entity/A-Entity.class.ts +2 -1
  25. package/src/global/A-Feature/A-Feature-Define.decorator.ts +5 -3
  26. package/src/global/A-Feature/A-Feature-Extend.decorator.ts +21 -16
  27. package/src/global/A-Feature/A-Feature.class.ts +1 -1
  28. package/src/global/A-Feature/A-Feature.types.ts +33 -8
  29. package/src/global/A-Stage/A-Stage.types.ts +7 -2
  30. package/src/global/A-StepManager/A-StepManager.class.ts +19 -13
  31. package/tests/A-Concept.test.ts +53 -4
  32. package/tests/A-Feature.test.ts +4 -4
  33. 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, _b, _c;
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: (((_b = config.before) === null || _b === void 0 ? void 0 : _b.map(b => b instanceof RegExp
65
- ? b.source
66
- : new RegExp(`^.*${b.replace(/\./g, '\\.')}$`).source))
67
- || []),
68
- after: (((_c = config.after) === null || _c === void 0 ? void 0 : _c.map(a => a instanceof RegExp
69
- ? a.source
70
- : new RegExp(`^.*${a.replace(/\./g, '\\.')}$`).source))
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":"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"}
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;iBAC/C,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;AApGD,0CAoGC"}
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,CAAC;oBACP,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,IAAI;oBACJ,MAAM,EAAE,SAAS,CAAC,MAAM;oBACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,KAAK,EAAE,SAAS,CAAC,KAAK;oBACtB,YAAY,EAAE,SAAS,CAAC,YAAY;iBACvC,CAAC,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;iBAC/C,CAAC,CAAC;YAEP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAGP,OAAO,KAAK,CAAC;IACjB,CAAC;CAEJ;AA5GD,0CA4GC"}
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":"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"}
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 || [], after: item.after || [], behavior: item.behavior || 'sync', throwOnError: true }))) : [],
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,4CA+FC;AAvHD,uFAA8E;AAI9E,8EAAqE;AACrE,4FAA6F;AAC7F,qGAAsG;AACtG,qGAAsG;AACtG,sFAA4E;AAC5E,uDAAmD;AAEnD;;;;;;;;;;;;GAYG;AACH,SAAgB,gBAAgB,CAC5B,SAAyD,EAAE;IAE3D,OAAO,UACH,MAA6C,EAC7C,WAAmB,EACnB,UAAqD;;QAErD,qBAAqB;QACrB,MAAM,aAAa,GAAG,CAAA,MAAC,MAAc,aAAd,MAAM,uBAAN,MAAM,CAAU,WAAW,0CAAE,IAAI,KAAI,MAAM,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;QAGxF,IAAI,CAAC,kCAAY,CAAC,6BAA6B,CAAC,MAAM,CAAC;YACnD,MAAM,IAAI,gCAAc,CACpB,gCAAc,CAAC,sBAAsB,EACrC,sCAAsC,aAAa,QAAQ,CAC9D,CAAC;QAEN,MAAM,IAAI,GAAqD,2BAAS,CAAC,IAAI,CAAC,MAAM,CAAC,WAAkB,CAAC,CAAC;QAEzG,IAAI,OAAO,CAAC;QAEZ,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,kCAAY,CAAC,gBAAgB,CAAC,MAAM,CAAC;gBACtC,OAAO,GAAG,2CAAsB,CAAC,QAAQ,CAAC;gBAC1C,MAAM;YACV,KAAK,kCAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC;gBACzC,OAAO,GAAG,iDAAyB,CAAC,QAAQ,CAAA;gBAC5C,MAAM;YACV,KAAK,kCAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC;gBACzC,OAAO,GAAG,iDAAyB,CAAC,QAAQ,CAAA;gBAC5C,MAAM;QACd,CAAC;QAGD,+CAA+C;QAC/C,MAAM,WAAW,GAOZ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,qBAAM,EAAE,CAAC;QAGvC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC;QACxC,oBAAoB;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC;QAGtC,uEAAuE;QACvE,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE;YACzB,IAAI,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,EAAE;YAC1C,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CACrE,IAAI,CAAC,EAAE,CAAC,iCACD,IAAI,KACP,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,EACzB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,MAAM,EACjC,YAAY,EAAE,IAAI,IACpB,CACL,CAAC,CAAC,CAAC,EAAE;SACT,CAAC,CAAC;QAEH,wEAAwE;QACxE,2BAAS;aACJ,IAAI,CAAC,MAAM,CAAC,WAAkB,CAAC;aAC/B,GAAG,CACA,OAAO,EACP,WAAW,CACd,CAAC;QAEN,MAAM,cAAc,GAAG,UAAU,CAAC,KAAM,CAAC;QAEzC,qDAAqD;QACrD,0FAA0F;QAC1F,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;YAEvC,2BAA2B;YAC3B,IAAI,CAAC,MAAM;gBACP,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;gBAExC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAErC,0CAA0C;YAC1C,IAAI,OAAQ,IAA8C,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM;gBACpF,OAAQ,IAA8C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1E,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;AACN,CAAC"}
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, _b, _c;
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 = ((_b = param1.before) === null || _b === void 0 ? void 0 : _b.map(e => e instanceof RegExp
41
- ? e.source
42
- : new RegExp(`^.*${e.replace(/\./g, '\\.')}$`).source))
43
- || before;
44
- after = ((_c = param1.after) === null || _c === void 0 ? void 0 : _c.map(e => e instanceof RegExp
45
- ? e.source
46
- : new RegExp(`^.*${e.replace(/\./g, '\\.')}$`).source))
47
- || after;
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":"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"}
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', /Component2\..+/]
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
- * before: ['Component1.methodName', /Component2\..+/]
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":";;;AA0EA;;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"}
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.map(step => {
17
- return Object.assign(Object.assign({}, step), { behavior: step.behavior || 'sync', before: step.before || [], after: step.after || [], throwOnError: false });
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.forEach(dep => {
37
- const targets = this.matchEntities(entityId, dep);
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.forEach(dep => {
48
- const sources = this.matchEntities(entityId, dep);
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":"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"}
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.23",
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
- ?.map(b =>
96
- b instanceof RegExp
97
- ? b.source
98
- : new RegExp(`^.*${b.replace(/\./g, '\\.')}$`).source)
99
- || []),
100
- after: (config.after
101
- ?.map(a =>
102
- a instanceof RegExp
103
- ? a.source
104
- : new RegExp(`^.*${a.replace(/\./g, '\\.')}$`).source)
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
- name: extension.name,
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
  });
@@ -254,7 +254,8 @@ export class A_Entity<
254
254
  ) {
255
255
  const newFeature = new A_Feature({
256
256
  name: feature,
257
- component: this
257
+ component: this,
258
+ scope
258
259
  });
259
260
 
260
261
  return await newFeature.process(scope);
@@ -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
- ?.map(e =>
109
- e instanceof RegExp
110
- ? e.source
111
- : new RegExp(`^.*${e.replace(/\./g, '\\.')}$`).source)
112
- || before;
113
- after = param1.after
114
- ?.map(e =>
115
- e instanceof RegExp
116
- ? e.source
117
- : new RegExp(`^.*${e.replace(/\./g, '\\.')}$`).source)
118
- || after;
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', /Component2\..+/]
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
- * before: ['Component1.methodName', /Component2\..+/]
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.map(step => {
32
- return {
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.forEach(dep => {
62
- const targets = this.matchEntities(entityId, dep);
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.forEach(dep => {
73
- const sources = this.matchEntities(entityId, dep);
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
 
@@ -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
- it('Should allow to register multiple containers', async () => {
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
  });
@@ -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: ['step2'],
102
- after: ['step6']
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: ['ComponentA.step2']
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: [new RegExp('.*').source],
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: [new RegExp('.*').source],
216
+ before: new RegExp('.*').source,
217
217
  },
218
218
  {
219
219
  name: 'step6',
220
220
  component: ComponentA,
221
221
  handler: 'step6',
222
- before: [new RegExp('.*').source],
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: [new RegExp('step(4|5)').source],
280
- after: [new RegExp('step(1|2)').source],
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: [/ComponentB\.read.+/.source],
330
- after: ['ComponentA.initialize']
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
  });