@adaas/a-concept 0.1.17 → 0.1.18
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 +11 -3
- package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.js.map +1 -1
- package/dist/src/global/A-Context/A-Context.class.d.ts +8 -0
- package/dist/src/global/A-Context/A-Context.class.js +30 -2
- package/dist/src/global/A-Context/A-Context.class.js.map +1 -1
- package/dist/src/global/A-Feature/A-Feature-Extend.decorator.js +13 -3
- package/dist/src/global/A-Feature/A-Feature-Extend.decorator.js.map +1 -1
- package/package.json +1 -1
- package/src/global/A-Abstraction/A-Abstraction-Extend.decorator.ts +12 -4
- package/src/global/A-Context/A-Context.class.ts +40 -3
- package/src/global/A-Feature/A-Feature-Extend.decorator.ts +15 -3
- package/tests/A-Abstraction.test.ts +66 -0
- package/tests/A-Feature.test.ts +305 -221
|
@@ -51,14 +51,22 @@ config = {}) {
|
|
|
51
51
|
const existedMeta = meta.get(metaKey) || new A_Meta_class_1.A_Meta();
|
|
52
52
|
// Set the metadata of the method to define a custom Stage with name
|
|
53
53
|
const existedMetaValue = existedMeta.get(setName) || [];
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
const existedIndex = existedMetaValue.findIndex(item => item.handler === propertyKey);
|
|
55
|
+
const abstraction = {
|
|
56
56
|
name: setName,
|
|
57
57
|
handler: propertyKey,
|
|
58
58
|
before: config.before || [],
|
|
59
59
|
after: config.after || [],
|
|
60
60
|
behavior: config.behavior || 'sync'
|
|
61
|
-
}
|
|
61
|
+
};
|
|
62
|
+
if (existedIndex !== -1) {
|
|
63
|
+
// Update the existing method in the metadata
|
|
64
|
+
existedMetaValue[existedIndex] = abstraction;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// Add the new method to the metadata
|
|
68
|
+
existedMetaValue.push(abstraction);
|
|
69
|
+
}
|
|
62
70
|
// Set the metadata of the method to define a custom Feature with name
|
|
63
71
|
existedMeta.set(setName, existedMetaValue);
|
|
64
72
|
// Update the metadata of the container with the new Stage definition
|
|
@@ -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":";;AA2BA,oDAmFC;AAzGD,uFAA8E;AAI9E,8EAAqE;AAErE,qGAAsG;AACtG,qGAAsG;AAEtG,+DAA2D;AAC3D,sFAA4E;AAG5E;;;;;;;;GAQG;AACH,SAAgB,oBAAoB;AAChC;;GAEG;AACH,IAAkC;AAClC;;;GAGG;AACH,SAAuD,EAAE;IAEzD,OAAO,UACH,MAAiC,EACjC,WAAmB,EACnB,UAAmD;;QAEnD,qBAAqB;QACrB,MAAM,aAAa,GAAG,CAAA,MAAC,MAAc,aAAd,MAAM,uBAAN,MAAM,CAAU,WAAW,0CAAE,IAAI,KAAI,MAAM,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC;QAEjG,IAAI,CAAC,IAAI;YACL,MAAM,IAAI,wCAAkB,CACxB,wCAAkB,CAAC,yBAAyB,EAC5C,gEAAgE,aAAa,IAAI,CACpF,CAAC;QAEN,kEAAkE;QAClE,IAAI,CAAC,kCAAY,CAAC,oCAAoC,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,wCAAkB,CACxB,wCAAkB,CAAC,yBAAyB,EAC5C,iCAAiC,IAAI,UAAU,aAAa,gEAAgE,CAC/H,CAAC;QACN,CAAC;QAED,IAAI,OAAO,CAAC;QACZ,MAAM,IAAI,GAAsC,2BAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEvE,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,kCAAY,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,kCAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC;gBACxF,OAAO,GAAG,iDAAyB,CAAC,YAAY,CAAA;gBAChD,MAAM;YACV,KAAK,kCAAY,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,kCAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC;gBACxF,OAAO,GAAG,iDAAyB,CAAC,YAAY,CAAA;gBAChD,MAAM;QACd,CAAC;QACD,MAAM,OAAO,GAAG,wBAAwB,IAAI,EAAE,CAAC;QAE/C,+CAA+C;QAC/C,MAAM,WAAW,GAEZ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,qBAAM,EAAE,CAAC;QAEvC,oEAAoE;QACpE,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAExD,MAAM,YAAY,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC;QAEtF,MAAM,WAAW,GAAI;YACjB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM;SACtC,CAAA;QAED,IAAG,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,6CAA6C;YAC7C,gBAAgB,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC;QACjD,CAAC;aAAI,CAAC;YACF,qCAAqC;YACrC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC;QAED,sEAAsE;QACtE,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAE3C,sEAAsE;QACtE,2BAAS;aACJ,IAAI,CAAC,MAAM,CAAC;aACZ,GAAG,CACA,OAAO,EACP,WAAW,CACd,CAAC;IACV,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -273,6 +273,14 @@ export declare class A_Context {
|
|
|
273
273
|
* Provide the scope that dictates which components are active and can provide extensions for the feature.
|
|
274
274
|
*/
|
|
275
275
|
scope: A_Scope): Array<A_TYPES__A_StageStep>;
|
|
276
|
+
/**
|
|
277
|
+
* method helps to filter steps in a way that only the most derived classes are kept.
|
|
278
|
+
*
|
|
279
|
+
* @param scope
|
|
280
|
+
* @param items
|
|
281
|
+
* @returns
|
|
282
|
+
*/
|
|
283
|
+
private filterToMostDerived;
|
|
276
284
|
/**
|
|
277
285
|
* This method returns the feature template definition without any extensions.
|
|
278
286
|
* It can be used to retrieve the base template for a feature before any modifications are applied.
|
|
@@ -382,7 +382,35 @@ class A_Context {
|
|
|
382
382
|
});
|
|
383
383
|
}
|
|
384
384
|
}
|
|
385
|
-
return steps;
|
|
385
|
+
return instance.filterToMostDerived(scope, steps);
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* method helps to filter steps in a way that only the most derived classes are kept.
|
|
389
|
+
*
|
|
390
|
+
* @param scope
|
|
391
|
+
* @param items
|
|
392
|
+
* @returns
|
|
393
|
+
*/
|
|
394
|
+
filterToMostDerived(scope, items) {
|
|
395
|
+
return items.filter(item => {
|
|
396
|
+
const currentClass = typeof item.component === 'string'
|
|
397
|
+
? scope.resolveConstructor(item.component)
|
|
398
|
+
: A_TypeGuards_helper_1.A_TypeGuards.isContainerInstance(item.component)
|
|
399
|
+
? item.component.constructor : item.component;
|
|
400
|
+
// Check if this class is parent of any other in the list
|
|
401
|
+
const isParentOfAnother = items.some(other => {
|
|
402
|
+
if (other === item)
|
|
403
|
+
return false;
|
|
404
|
+
const otherClass = typeof other.component === 'string'
|
|
405
|
+
? scope.resolveConstructor(other.component)
|
|
406
|
+
: A_TypeGuards_helper_1.A_TypeGuards.isContainerInstance(other.component)
|
|
407
|
+
? other.component.constructor
|
|
408
|
+
: other.component;
|
|
409
|
+
return currentClass.prototype.isPrototypeOf(otherClass.prototype);
|
|
410
|
+
});
|
|
411
|
+
// Keep only classes that are not parent of any other
|
|
412
|
+
return !isParentOfAnother;
|
|
413
|
+
});
|
|
386
414
|
}
|
|
387
415
|
/**
|
|
388
416
|
* This method returns the feature template definition without any extensions.
|
|
@@ -509,7 +537,7 @@ class A_Context {
|
|
|
509
537
|
});
|
|
510
538
|
}
|
|
511
539
|
}
|
|
512
|
-
return steps;
|
|
540
|
+
return instance.filterToMostDerived(scope, steps);
|
|
513
541
|
}
|
|
514
542
|
/**
|
|
515
543
|
* Resets the Context to its initial state.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"A-Context.class.js","sourceRoot":"","sources":["../../../../src/global/A-Context/A-Context.class.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"A-Context.class.js","sourceRoot":"","sources":["../../../../src/global/A-Context/A-Context.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,14 +57,24 @@ function A_Feature_Extend(param1) {
|
|
|
57
57
|
throw new A_Feature_error_1.A_FeatureError(A_Feature_error_1.A_FeatureError.FeatureExtensionError, `A-Feature-Extend cannot be used on the method "${propertyKey}" because it is already defined as a Feature with "invoke" set to true. Please remove the A-Feature-Extend decorator or set "invoke" to false in the A-Feature decorator.`);
|
|
58
58
|
}
|
|
59
59
|
const existedMetaValue = existedMeta.get(targetRegexp.source) || [];
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
const existedIndex = existedMetaValue.findIndex(item => item.handler === propertyKey);
|
|
61
|
+
const extension = {
|
|
62
62
|
name: targetRegexp.source,
|
|
63
63
|
handler: propertyKey,
|
|
64
64
|
behavior,
|
|
65
65
|
before,
|
|
66
66
|
after
|
|
67
|
-
}
|
|
67
|
+
};
|
|
68
|
+
if (existedIndex !== -1) {
|
|
69
|
+
// Update the existing method in the metadata
|
|
70
|
+
existedMetaValue[existedIndex] = extension;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
// Add the new method to the metadata
|
|
74
|
+
existedMetaValue.push(extension);
|
|
75
|
+
}
|
|
76
|
+
// Add the new method to the metadata
|
|
77
|
+
existedMetaValue.push();
|
|
68
78
|
// Set the metadata of the method to define a custom Feature with name
|
|
69
79
|
existedMeta.set(targetRegexp.source, existedMetaValue);
|
|
70
80
|
// Update the metadata of the container with the new Feature definition
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"A-Feature-Extend.decorator.js","sourceRoot":"","sources":["../../../../src/global/A-Feature/A-Feature-Extend.decorator.ts"],"names":[],"mappings":";;AA0DA,
|
|
1
|
+
{"version":3,"file":"A-Feature-Extend.decorator.js","sourceRoot":"","sources":["../../../../src/global/A-Feature/A-Feature-Extend.decorator.ts"],"names":[],"mappings":";;AA0DA,4CA6GC;AAYD,8CAmBC;AArMD,uFAA8E;AAC9E,8EAAqE;AAErE,sFAA4E;AAC5E,gFAAiF;AACjF,uDAAmD;AAoDnD,SAAgB,gBAAgB,CAC5B,MAAgE;IAEhE,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;QAExF,IAAI,CAAC,kCAAY,CAAC,4BAA4B,CAAC,MAAM,CAAC;YAClD,MAAM,IAAI,gCAAc,CACpB,gCAAc,CAAC,qBAAqB,EACpC,6CAA6C,aAAa,QAAQ,CACrE,CAAC;QAEN,IAAI,YAAoB,CAAC;QACzB,IAAI,QAAQ,GAAqB,MAAM,CAAC;QACxC,IAAI,MAAM,GAAa,EAAE,CAAC;QAC1B,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,IAAI,OAAO,GAAoD,EAAE,CAAC;QAClE,IAAI,OAAO,GAAoD,EAAE,CAAC;QAIlE,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,kCAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC9B,YAAY,GAAG,MAAM,CAAC;gBACtB,MAAM;YAEV,KAAK,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAEvC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC3B,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;qBACtB,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;wBACnC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;oBACnC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;wBACnC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;gBACvC,CAAC;gBAGD,YAAY,GAAG,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;gBAExE,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC;gBACvC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;gBACjC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;gBAC9B,MAAM;YAEV;gBACI,YAAY,GAAG,IAAI,MAAM,CAAC,SAAS,WAAW,GAAG,CAAC,CAAC;gBACnD,MAAM;QACd,CAAC;QAGD,MAAM,kBAAkB,GAAG,2BAAS;aAC/B,IAAI,CAAC,MAAM,CAAC;aACZ,GAAG,CAAC,iDAAyB,CAAC,QAAQ,CAAC,CAAC;QAG7C,+CAA+C;QAC/C,MAAM,WAAW,GAAG,2BAAS;aACxB,IAAI,CAAC,MAAM,CAAC;aACZ,GAAG,CAAC,iDAAyB,CAAC,UAAU,CAAC;eACvC,IAAI,qBAAM,EAAE,CAAC;QAEpB,IAAI,kBAAkB;eACf,kBAAkB,CAAC,IAAI,EAAE;eACzB,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC;eACnC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,MAAM,EAChD,CAAC;YACC,MAAM,IAAI,gCAAc,CACpB,gCAAc,CAAC,qBAAqB,EACpC,kDAAkD,WAAW,2KAA2K,CAC3O,CAAC;QACN,CAAC;QAED,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAEpE,MAAM,YAAY,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC;QAEtF,MAAM,SAAS,GAAG;YACd,IAAI,EAAE,YAAY,CAAC,MAAM;YACzB,OAAO,EAAE,WAAW;YACpB,QAAQ;YACR,MAAM;YACN,KAAK;SACR,CAAA;QAED,IAAI,YAAY,KAAK,CAAC,CAAC,EAAC,CAAC;YACrB,6CAA6C;YAC7C,gBAAgB,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;QAC/C,CAAC;aAAI,CAAC;YACF,qCAAqC;YACrC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QAED,qCAAqC;QACrC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAExB,sEAAsE;QACtE,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAEvD,wEAAwE;QACxE,2BAAS;aACJ,IAAI,CAAC,MAAM,CAAC;aACZ,GAAG,CAAC,iDAAyB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAChE,CAAC,CAAC;AACN,CAAC;AAGD;;;;;;;;GAQG;AACH,SAAgB,iBAAiB,CAC7B,MAAW,EACX,OAAc,EACd,OAAc,EACd,WAAmB;IAEnB,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM;QAC9B,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;QAC7C,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM;QAC9B,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;QAC/C,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK;QACxB,CAAC,CAAC,IAAI,WAAW,GAAG,WAAW,MAAM,MAAM,CAAC,IAAI,IAAI,WAAW,GAAG;QAClE,CAAC,CAAC,QAAQ,MAAM,CAAC,IAAI,IAAI,WAAW,GAAG,CAAC;IAE5C,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adaas/a-concept",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.18",
|
|
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",
|
|
@@ -79,19 +79,27 @@ export function A_Abstraction_Extend(
|
|
|
79
79
|
// Set the metadata of the method to define a custom Stage with name
|
|
80
80
|
const existedMetaValue = existedMeta.get(setName) || [];
|
|
81
81
|
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
const existedIndex = existedMetaValue.findIndex(item => item.handler === propertyKey);
|
|
83
|
+
|
|
84
|
+
const abstraction = {
|
|
84
85
|
name: setName,
|
|
85
86
|
handler: propertyKey,
|
|
86
87
|
before: config.before || [],
|
|
87
88
|
after: config.after || [],
|
|
88
89
|
behavior: config.behavior || 'sync'
|
|
89
|
-
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if(existedIndex !== -1) {
|
|
93
|
+
// Update the existing method in the metadata
|
|
94
|
+
existedMetaValue[existedIndex] = abstraction;
|
|
95
|
+
}else{
|
|
96
|
+
// Add the new method to the metadata
|
|
97
|
+
existedMetaValue.push(abstraction);
|
|
98
|
+
}
|
|
90
99
|
|
|
91
100
|
// Set the metadata of the method to define a custom Feature with name
|
|
92
101
|
existedMeta.set(setName, existedMetaValue);
|
|
93
102
|
|
|
94
|
-
|
|
95
103
|
// Update the metadata of the container with the new Stage definition
|
|
96
104
|
A_Context
|
|
97
105
|
.meta(target)
|
|
@@ -662,8 +662,46 @@ export class A_Context {
|
|
|
662
662
|
}
|
|
663
663
|
}
|
|
664
664
|
|
|
665
|
-
return steps;
|
|
665
|
+
return instance.filterToMostDerived(scope, steps);
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
|
|
669
|
+
/**
|
|
670
|
+
* method helps to filter steps in a way that only the most derived classes are kept.
|
|
671
|
+
*
|
|
672
|
+
* @param scope
|
|
673
|
+
* @param items
|
|
674
|
+
* @returns
|
|
675
|
+
*/
|
|
676
|
+
private filterToMostDerived(
|
|
677
|
+
scope: A_Scope,
|
|
678
|
+
items: A_TYPES__A_StageStep[]): Array<A_TYPES__A_StageStep> {
|
|
679
|
+
return items.filter(item => {
|
|
680
|
+
const currentClass = typeof item.component === 'string'
|
|
681
|
+
? scope.resolveConstructor(item.component)
|
|
682
|
+
: A_TypeGuards.isContainerInstance(item.component)
|
|
683
|
+
? item.component.constructor : item.component;
|
|
684
|
+
|
|
685
|
+
// Check if this class is parent of any other in the list
|
|
686
|
+
const isParentOfAnother = items.some(other => {
|
|
687
|
+
if (other === item) return false;
|
|
688
|
+
|
|
689
|
+
const otherClass = typeof other.component === 'string'
|
|
690
|
+
? scope.resolveConstructor(other.component)
|
|
691
|
+
: A_TypeGuards.isContainerInstance(other.component)
|
|
692
|
+
? other.component.constructor
|
|
693
|
+
: other.component;
|
|
694
|
+
|
|
695
|
+
|
|
696
|
+
return currentClass.prototype.isPrototypeOf(otherClass.prototype);
|
|
697
|
+
});
|
|
698
|
+
|
|
699
|
+
// Keep only classes that are not parent of any other
|
|
700
|
+
return !isParentOfAnother;
|
|
701
|
+
});
|
|
666
702
|
}
|
|
703
|
+
|
|
704
|
+
|
|
667
705
|
/**
|
|
668
706
|
* This method returns the feature template definition without any extensions.
|
|
669
707
|
* It can be used to retrieve the base template for a feature before any modifications are applied.
|
|
@@ -825,11 +863,10 @@ export class A_Context {
|
|
|
825
863
|
}
|
|
826
864
|
}
|
|
827
865
|
|
|
828
|
-
return steps;
|
|
866
|
+
return instance.filterToMostDerived(scope, steps);
|
|
829
867
|
}
|
|
830
868
|
|
|
831
869
|
|
|
832
|
-
|
|
833
870
|
/**
|
|
834
871
|
* Resets the Context to its initial state.
|
|
835
872
|
*/
|
|
@@ -136,14 +136,26 @@ export function A_Feature_Extend(
|
|
|
136
136
|
|
|
137
137
|
const existedMetaValue = existedMeta.get(targetRegexp.source) || [];
|
|
138
138
|
|
|
139
|
-
|
|
140
|
-
|
|
139
|
+
const existedIndex = existedMetaValue.findIndex(item => item.handler === propertyKey);
|
|
140
|
+
|
|
141
|
+
const extension = {
|
|
141
142
|
name: targetRegexp.source,
|
|
142
143
|
handler: propertyKey,
|
|
143
144
|
behavior,
|
|
144
145
|
before,
|
|
145
146
|
after
|
|
146
|
-
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
if (existedIndex !== -1){
|
|
150
|
+
// Update the existing method in the metadata
|
|
151
|
+
existedMetaValue[existedIndex] = extension;
|
|
152
|
+
}else{
|
|
153
|
+
// Add the new method to the metadata
|
|
154
|
+
existedMetaValue.push(extension);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// Add the new method to the metadata
|
|
158
|
+
existedMetaValue.push();
|
|
147
159
|
|
|
148
160
|
// Set the metadata of the method to define a custom Feature with name
|
|
149
161
|
existedMeta.set(targetRegexp.source, existedMetaValue);
|
|
@@ -3,6 +3,7 @@ import './test.setup'
|
|
|
3
3
|
import { A_Concept } from '@adaas/a-concept/global/A-Concept/A-Concept.class';
|
|
4
4
|
import { A_Container } from '@adaas/a-concept/global/A-Container/A-Container.class';
|
|
5
5
|
import { A_Context } from '@adaas/a-concept/global/A-Context/A-Context.class';
|
|
6
|
+
import { A_Scope } from '@adaas/a-concept/global/A-Scope/A-Scope.class';
|
|
6
7
|
|
|
7
8
|
jest.retryTimes(0);
|
|
8
9
|
|
|
@@ -255,4 +256,69 @@ describe('A-Abstraction Tests', () => {
|
|
|
255
256
|
|
|
256
257
|
expect(order).toEqual(['step1', 'step3', 'step2', 'step5', 'step4']);
|
|
257
258
|
})
|
|
259
|
+
it('Should inherit abstraction extensions', async () => {
|
|
260
|
+
const executionOrder: string[] = [];
|
|
261
|
+
|
|
262
|
+
// 1) create a base component with some abstraction
|
|
263
|
+
class My_Component extends A_Component {
|
|
264
|
+
|
|
265
|
+
@A_Concept.Load()
|
|
266
|
+
async feature1() {
|
|
267
|
+
executionOrder.push('stepOne');
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
class My_Child_Component extends My_Component { }
|
|
273
|
+
|
|
274
|
+
const concept = new A_Concept({
|
|
275
|
+
name: 'TestConcept',
|
|
276
|
+
containers: [
|
|
277
|
+
new A_Container({
|
|
278
|
+
name: 'TestContainer',
|
|
279
|
+
components: [My_Child_Component],
|
|
280
|
+
})
|
|
281
|
+
]
|
|
282
|
+
});
|
|
283
|
+
|
|
284
|
+
await concept.load();
|
|
285
|
+
|
|
286
|
+
expect(executionOrder).toEqual(['stepOne']);
|
|
287
|
+
});
|
|
288
|
+
it('Should allow to override abstraction extensions', async () => {
|
|
289
|
+
const executionOrder: string[] = [];
|
|
290
|
+
|
|
291
|
+
// 1) create a base component with some abstraction
|
|
292
|
+
class My_Component extends A_Component {
|
|
293
|
+
|
|
294
|
+
@A_Concept.Load()
|
|
295
|
+
async feature1() {
|
|
296
|
+
executionOrder.push('stepOne');
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
class My_Child_Component extends My_Component {
|
|
302
|
+
@A_Concept.Load()
|
|
303
|
+
async feature1() {
|
|
304
|
+
// do nothing
|
|
305
|
+
executionOrder.push('stepTwo');
|
|
306
|
+
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
const concept = new A_Concept({
|
|
311
|
+
name: 'TestConcept',
|
|
312
|
+
containers: [
|
|
313
|
+
new A_Container({
|
|
314
|
+
name: 'TestContainer',
|
|
315
|
+
components: [My_Child_Component],
|
|
316
|
+
})
|
|
317
|
+
]
|
|
318
|
+
});
|
|
319
|
+
|
|
320
|
+
await concept.load();
|
|
321
|
+
|
|
322
|
+
expect(executionOrder).toEqual(['stepTwo']);
|
|
323
|
+
});
|
|
258
324
|
});
|
package/tests/A-Feature.test.ts
CHANGED
|
@@ -6,279 +6,363 @@ import { A_Feature } from "@adaas/a-concept/global/A-Feature/A-Feature.class";
|
|
|
6
6
|
import { A_Scope } from "@adaas/a-concept/global/A-Scope/A-Scope.class";
|
|
7
7
|
import { A_Caller } from '@adaas/a-concept/global/A-Caller/A_Caller.class';
|
|
8
8
|
import { A_Context } from '@adaas/a-concept/global/A-Context/A-Context.class';
|
|
9
|
+
import { A_TYPES__ComponentMetaKey } from '@adaas/a-concept/global/A-Component/A-Component.constants';
|
|
9
10
|
|
|
10
11
|
jest.retryTimes(0);
|
|
11
12
|
|
|
12
13
|
describe('A-Feature tests', () => {
|
|
13
|
-
it('Should Allow to create a feature from component', async () => {
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
// it('Should Allow to create a feature from component', async () => {
|
|
15
|
+
// const testComponent = new A_Component()
|
|
16
|
+
// A_Context.root.register(testComponent);
|
|
17
|
+
|
|
18
|
+
// const feature = new A_Feature({
|
|
19
|
+
// name: 'testFeature',
|
|
20
|
+
// component: testComponent,
|
|
21
|
+
// });
|
|
22
|
+
|
|
23
|
+
// expect(feature).toBeInstanceOf(A_Feature);
|
|
24
|
+
// expect(feature.scope.parent).toBe(A_Context.root);
|
|
25
|
+
|
|
26
|
+
// });
|
|
27
|
+
// it('Should Allow to create a feature with steps', async () => {
|
|
28
|
+
// const template = [
|
|
29
|
+
// {
|
|
30
|
+
// name: 'A_Component.testHandler',
|
|
31
|
+
// component: A_Component,
|
|
32
|
+
// handler: 'testHandler',
|
|
33
|
+
// }
|
|
34
|
+
// ]
|
|
35
|
+
|
|
36
|
+
// const feature = new A_Feature({
|
|
37
|
+
// name: 'testFeature',
|
|
38
|
+
// scope: new A_Scope(),
|
|
39
|
+
// template
|
|
40
|
+
// });
|
|
41
|
+
|
|
42
|
+
// expect(feature).toBeInstanceOf(A_Feature);
|
|
43
|
+
// });
|
|
44
|
+
// it('Should be possible to execute a feature with steps as a template on the component', async () => {
|
|
45
|
+
// // 1) create a base component with some feature
|
|
46
|
+
// class MyExtendedComponent extends A_Component {
|
|
47
|
+
|
|
48
|
+
// async testHandler(
|
|
49
|
+
// @A_Inject(A_Caller) caller: MyComponent
|
|
50
|
+
// ) {
|
|
51
|
+
// caller.sum = 2;
|
|
52
|
+
// }
|
|
53
|
+
// }
|
|
54
|
+
|
|
55
|
+
// // 2) create a custom component with a defined template feature
|
|
56
|
+
// class MyComponent extends A_Component {
|
|
57
|
+
// sum: number = 0;
|
|
58
|
+
|
|
59
|
+
// @A_Feature.Define({
|
|
60
|
+
// invoke: true,
|
|
61
|
+
// template: [{
|
|
62
|
+
// name: 'MyExtendedComponent.testHandler',
|
|
63
|
+
// component: MyExtendedComponent,
|
|
64
|
+
// handler: 'testHandler',
|
|
65
|
+
// behavior: 'sync',
|
|
66
|
+
// before: [],
|
|
67
|
+
// after: []
|
|
68
|
+
// },
|
|
69
|
+
// {
|
|
70
|
+
// name: 'MyExtendedComponent.testHandler',
|
|
71
|
+
// component: MyExtendedComponent,
|
|
72
|
+
// handler: 'testHandler'
|
|
73
|
+
// }]
|
|
74
|
+
// })
|
|
75
|
+
// async testHandler() { }
|
|
76
|
+
// }
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
// // 3) create a running scope
|
|
80
|
+
// const scope = new A_Scope({ name: 'TestScope' });
|
|
81
|
+
// scope.register(MyExtendedComponent);
|
|
82
|
+
// scope.register(MyComponent);
|
|
83
|
+
|
|
84
|
+
// // 4) create an instance of the component from the scope
|
|
85
|
+
// const myComponent = scope.resolve(MyComponent);
|
|
86
|
+
// expect(myComponent).toBeInstanceOf(MyComponent);
|
|
87
|
+
// expect(myComponent.sum).toBe(0);
|
|
88
|
+
|
|
89
|
+
// // 5) call the feature caller to execute the feature
|
|
90
|
+
// await myComponent.testHandler();
|
|
91
|
+
|
|
92
|
+
// // 6) check the results
|
|
93
|
+
// expect(myComponent.sum).toBe(2);
|
|
94
|
+
|
|
95
|
+
// });
|
|
96
|
+
// it('Should be possible to execute a feature with steps as a template on the component with string component declaration', async () => {
|
|
97
|
+
// // 1) create a base component with some feature
|
|
98
|
+
// class MyExtendedComponent2 extends A_Component {
|
|
99
|
+
|
|
100
|
+
// async testHandler(
|
|
101
|
+
// @A_Inject(A_Caller) caller: MyComponent2
|
|
102
|
+
// ) {
|
|
103
|
+
// caller.sum = 2;
|
|
104
|
+
// }
|
|
105
|
+
// }
|
|
106
|
+
|
|
107
|
+
// // 2) create a custom component with a defined template feature
|
|
108
|
+
// class MyComponent2 extends A_Component {
|
|
109
|
+
// sum: number = 0;
|
|
110
|
+
|
|
111
|
+
// @A_Feature.Define({
|
|
112
|
+
// invoke: true,
|
|
113
|
+
// template: [{
|
|
114
|
+
// name: 'MyExtendedComponent2.testHandler',
|
|
115
|
+
// component: 'MyExtendedComponent2',
|
|
116
|
+
// handler: 'testHandler',
|
|
117
|
+
// behavior: 'sync',
|
|
118
|
+
// before: [],
|
|
119
|
+
// after: []
|
|
120
|
+
// }]
|
|
121
|
+
// })
|
|
122
|
+
// async testHandler() { }
|
|
123
|
+
// }
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
// // 3) create a running scope
|
|
127
|
+
// const scope = new A_Scope({ name: 'TestScope' });
|
|
128
|
+
// scope.register(MyExtendedComponent2);
|
|
129
|
+
// scope.register(MyComponent2);
|
|
130
|
+
|
|
131
|
+
// // 4) create an instance of the component from the scope
|
|
132
|
+
// const myComponent = scope.resolve(MyComponent2);
|
|
133
|
+
// expect(myComponent).toBeInstanceOf(MyComponent2);
|
|
134
|
+
// expect(myComponent.sum).toBe(0);
|
|
135
|
+
|
|
136
|
+
// // 5) call the feature caller to execute the feature
|
|
137
|
+
// await myComponent.testHandler();
|
|
138
|
+
|
|
139
|
+
// // 6) check the results
|
|
140
|
+
// expect(myComponent.sum).toBe(2);
|
|
141
|
+
|
|
142
|
+
// });
|
|
143
|
+
// it('Should execute feature steps in base order', async () => {
|
|
144
|
+
// const executionOrder: string[] = [];
|
|
145
|
+
|
|
146
|
+
// // 1) create a base component with some feature
|
|
147
|
+
// class My_Component extends A_Component {
|
|
148
|
+
// async methodA() {
|
|
149
|
+
// await this.call('myFeature')
|
|
150
|
+
// }
|
|
151
|
+
|
|
152
|
+
// @A_Feature.Extend({
|
|
153
|
+
// name: 'myFeature',
|
|
154
|
+
// })
|
|
155
|
+
// async stepOne(
|
|
156
|
+
// ) {
|
|
157
|
+
// executionOrder.push('stepOne');
|
|
158
|
+
// }
|
|
159
|
+
|
|
160
|
+
// @A_Feature.Extend({
|
|
161
|
+
// name: 'myFeature',
|
|
162
|
+
// })
|
|
163
|
+
// async stepTwo(
|
|
164
|
+
// ) {
|
|
165
|
+
// executionOrder.push('stepTwo');
|
|
166
|
+
// }
|
|
167
|
+
|
|
168
|
+
// @A_Feature.Extend({
|
|
169
|
+
// name: 'myFeature',
|
|
170
|
+
// })
|
|
171
|
+
// async stepThree(
|
|
172
|
+
// ) {
|
|
173
|
+
// executionOrder.push('stepThree');
|
|
174
|
+
// }
|
|
175
|
+
// }
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
// // 2) create a running scope
|
|
179
|
+
// const scope = new A_Scope({ name: 'TestScope', components: [My_Component] });
|
|
180
|
+
|
|
181
|
+
// // 3) create an instance of the component from the scope
|
|
182
|
+
// const myComponent = scope.resolve(My_Component);
|
|
183
|
+
// expect(myComponent).toBeInstanceOf(My_Component);
|
|
184
|
+
|
|
185
|
+
// // 4) call the feature caller to execute the feature
|
|
186
|
+
// await myComponent.methodA();
|
|
187
|
+
|
|
188
|
+
// // 5) check the results
|
|
189
|
+
// expect(executionOrder).toEqual(['stepOne', 'stepTwo', 'stepThree']);
|
|
190
|
+
// });
|
|
191
|
+
// it('Should execute feature steps in proper order', async () => {
|
|
192
|
+
// const executionOrder: string[] = [];
|
|
193
|
+
|
|
194
|
+
// // 1) create a base component with some feature
|
|
195
|
+
// class My_Component extends A_Component {
|
|
196
|
+
// async methodA() {
|
|
197
|
+
// await this.call('myFeature')
|
|
198
|
+
// }
|
|
199
|
+
|
|
200
|
+
// @A_Feature.Extend({
|
|
201
|
+
// name: 'myFeature',
|
|
202
|
+
// after: ['My_Component.stepTwo'],
|
|
203
|
+
// })
|
|
204
|
+
// async stepOne(
|
|
205
|
+
// ) {
|
|
206
|
+
// executionOrder.push('stepOne');
|
|
207
|
+
// }
|
|
208
|
+
|
|
209
|
+
// @A_Feature.Extend({
|
|
210
|
+
// name: 'myFeature',
|
|
211
|
+
// })
|
|
212
|
+
// async stepTwo(
|
|
213
|
+
// ) {
|
|
214
|
+
// executionOrder.push('stepTwo');
|
|
215
|
+
// }
|
|
216
|
+
// }
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
// // 2) create a running scope
|
|
220
|
+
// const scope = new A_Scope({ name: 'TestScope', components: [My_Component] });
|
|
221
|
+
|
|
222
|
+
// // 3) create an instance of the component from the scope
|
|
223
|
+
// const myComponent = scope.resolve(My_Component);
|
|
224
|
+
// expect(myComponent).toBeInstanceOf(My_Component);
|
|
225
|
+
|
|
226
|
+
// // 4) call the feature caller to execute the feature
|
|
227
|
+
// await myComponent.methodA();
|
|
228
|
+
|
|
229
|
+
// // 5) check the results
|
|
230
|
+
// expect(executionOrder).toEqual(['stepTwo', 'stepOne']);
|
|
231
|
+
// });
|
|
232
|
+
|
|
233
|
+
// it('Should allow to define a feature', async () => {
|
|
234
|
+
// const executionOrder: string[] = [];
|
|
235
|
+
|
|
236
|
+
// // 1) create a base component with some feature
|
|
237
|
+
// class My_Component extends A_Component {
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
// @A_Feature.Define({ invoke: true })
|
|
241
|
+
// @A_Feature.Extend({
|
|
242
|
+
// name: 'myFeature',
|
|
243
|
+
// })
|
|
244
|
+
// async feature1(
|
|
245
|
+
// @A_Inject(A_Component) component: A_Component
|
|
246
|
+
// ) { }
|
|
247
|
+
|
|
248
|
+
// @A_Feature.Extend({
|
|
249
|
+
// name: 'feature1',
|
|
250
|
+
// })
|
|
251
|
+
// async feature1Extension() {
|
|
252
|
+
// executionOrder.push('stepOne');
|
|
253
|
+
// }
|
|
254
|
+
|
|
255
|
+
// @A_Feature.Define()
|
|
256
|
+
// async feature2() {
|
|
257
|
+
// await this.call('feature2');
|
|
258
|
+
// }
|
|
259
|
+
|
|
260
|
+
// @A_Feature.Extend({
|
|
261
|
+
// name: 'feature2',
|
|
262
|
+
// })
|
|
263
|
+
// async feature2Extension() {
|
|
264
|
+
// executionOrder.push('stepTwo');
|
|
265
|
+
// }
|
|
266
|
+
|
|
267
|
+
// }
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
// // 2) create a running scope
|
|
271
|
+
// const scope = new A_Scope({ name: 'TestScope', components: [My_Component] });
|
|
272
|
+
|
|
273
|
+
// // 3) create an instance of the component from the scope
|
|
274
|
+
// const myComponent = scope.resolve(My_Component);
|
|
275
|
+
// expect(myComponent).toBeInstanceOf(My_Component);
|
|
16
276
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
it('Should Allow to create a feature with steps', async () => {
|
|
27
|
-
const template = [
|
|
28
|
-
{
|
|
29
|
-
name: 'A_Component.testHandler',
|
|
30
|
-
component: A_Component,
|
|
31
|
-
handler: 'testHandler',
|
|
32
|
-
}
|
|
33
|
-
]
|
|
34
|
-
|
|
35
|
-
const feature = new A_Feature({
|
|
36
|
-
name: 'testFeature',
|
|
37
|
-
scope: new A_Scope(),
|
|
38
|
-
template
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
expect(feature).toBeInstanceOf(A_Feature);
|
|
42
|
-
});
|
|
43
|
-
it('Should be possible to execute a feature with steps as a template on the component', async () => {
|
|
44
|
-
// 1) create a base component with some feature
|
|
45
|
-
class MyExtendedComponent extends A_Component {
|
|
46
|
-
|
|
47
|
-
async testHandler(
|
|
48
|
-
@A_Inject(A_Caller) caller: MyComponent
|
|
49
|
-
) {
|
|
50
|
-
caller.sum = 2;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// 2) create a custom component with a defined template feature
|
|
55
|
-
class MyComponent extends A_Component {
|
|
56
|
-
sum: number = 0;
|
|
57
|
-
|
|
58
|
-
@A_Feature.Define({
|
|
59
|
-
invoke: true,
|
|
60
|
-
template: [{
|
|
61
|
-
name: 'MyExtendedComponent.testHandler',
|
|
62
|
-
component: MyExtendedComponent,
|
|
63
|
-
handler: 'testHandler',
|
|
64
|
-
behavior: 'sync',
|
|
65
|
-
before: [],
|
|
66
|
-
after: []
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
name: 'MyExtendedComponent.testHandler',
|
|
70
|
-
component: MyExtendedComponent,
|
|
71
|
-
handler: 'testHandler'
|
|
72
|
-
}]
|
|
73
|
-
})
|
|
74
|
-
async testHandler() { }
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
// 3) create a running scope
|
|
79
|
-
const scope = new A_Scope({ name: 'TestScope' });
|
|
80
|
-
scope.register(MyExtendedComponent);
|
|
81
|
-
scope.register(MyComponent);
|
|
82
|
-
|
|
83
|
-
// 4) create an instance of the component from the scope
|
|
84
|
-
const myComponent = scope.resolve(MyComponent);
|
|
85
|
-
expect(myComponent).toBeInstanceOf(MyComponent);
|
|
86
|
-
expect(myComponent.sum).toBe(0);
|
|
87
|
-
|
|
88
|
-
// 5) call the feature caller to execute the feature
|
|
89
|
-
await myComponent.testHandler();
|
|
90
|
-
|
|
91
|
-
// 6) check the results
|
|
92
|
-
expect(myComponent.sum).toBe(2);
|
|
93
|
-
|
|
94
|
-
});
|
|
95
|
-
it('Should be possible to execute a feature with steps as a template on the component with string component declaration', async () => {
|
|
96
|
-
// 1) create a base component with some feature
|
|
97
|
-
class MyExtendedComponent2 extends A_Component {
|
|
98
|
-
|
|
99
|
-
async testHandler(
|
|
100
|
-
@A_Inject(A_Caller) caller: MyComponent2
|
|
101
|
-
) {
|
|
102
|
-
caller.sum = 2;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
// 2) create a custom component with a defined template feature
|
|
107
|
-
class MyComponent2 extends A_Component {
|
|
108
|
-
sum: number = 0;
|
|
109
|
-
|
|
110
|
-
@A_Feature.Define({
|
|
111
|
-
invoke: true,
|
|
112
|
-
template: [{
|
|
113
|
-
name: 'MyExtendedComponent2.testHandler',
|
|
114
|
-
component: 'MyExtendedComponent2',
|
|
115
|
-
handler: 'testHandler',
|
|
116
|
-
behavior: 'sync',
|
|
117
|
-
before: [],
|
|
118
|
-
after: []
|
|
119
|
-
}]
|
|
120
|
-
})
|
|
121
|
-
async testHandler() { }
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
// 3) create a running scope
|
|
126
|
-
const scope = new A_Scope({ name: 'TestScope' });
|
|
127
|
-
scope.register(MyExtendedComponent2);
|
|
128
|
-
scope.register(MyComponent2);
|
|
129
|
-
|
|
130
|
-
// 4) create an instance of the component from the scope
|
|
131
|
-
const myComponent = scope.resolve(MyComponent2);
|
|
132
|
-
expect(myComponent).toBeInstanceOf(MyComponent2);
|
|
133
|
-
expect(myComponent.sum).toBe(0);
|
|
134
|
-
|
|
135
|
-
// 5) call the feature caller to execute the feature
|
|
136
|
-
await myComponent.testHandler();
|
|
137
|
-
|
|
138
|
-
// 6) check the results
|
|
139
|
-
expect(myComponent.sum).toBe(2);
|
|
140
|
-
|
|
141
|
-
});
|
|
142
|
-
it('Should execute feature steps in base order', async () => {
|
|
277
|
+
// // 4) call the feature caller to execute the feature
|
|
278
|
+
// await myComponent.feature1(new A_Component());
|
|
279
|
+
|
|
280
|
+
// await myComponent.feature2();
|
|
281
|
+
|
|
282
|
+
// // 5) check the results
|
|
283
|
+
// expect(executionOrder).toEqual(['stepOne', 'stepTwo']);
|
|
284
|
+
// });
|
|
285
|
+
it('Should inherit feature definitions & extensions', async () => {
|
|
143
286
|
const executionOrder: string[] = [];
|
|
144
287
|
|
|
145
288
|
// 1) create a base component with some feature
|
|
146
289
|
class My_Component extends A_Component {
|
|
147
|
-
async methodA() {
|
|
148
|
-
await this.call('myFeature')
|
|
149
|
-
}
|
|
150
290
|
|
|
151
|
-
@A_Feature.
|
|
152
|
-
|
|
153
|
-
})
|
|
154
|
-
async stepOne(
|
|
155
|
-
) {
|
|
291
|
+
@A_Feature.Define({ invoke: false })
|
|
292
|
+
async feature1() {
|
|
156
293
|
executionOrder.push('stepOne');
|
|
157
|
-
}
|
|
158
294
|
|
|
159
|
-
|
|
160
|
-
name: 'myFeature',
|
|
161
|
-
})
|
|
162
|
-
async stepTwo(
|
|
163
|
-
) {
|
|
164
|
-
executionOrder.push('stepTwo');
|
|
295
|
+
await this.call('feature1');
|
|
165
296
|
}
|
|
166
297
|
|
|
167
298
|
@A_Feature.Extend({
|
|
168
|
-
name: '
|
|
299
|
+
name: 'feature1',
|
|
169
300
|
})
|
|
170
|
-
async
|
|
301
|
+
async feature1Extension(
|
|
302
|
+
@A_Inject(A_Scope) scope: A_Scope
|
|
171
303
|
) {
|
|
172
|
-
executionOrder.push('
|
|
304
|
+
executionOrder.push('stepTwo');
|
|
173
305
|
}
|
|
174
306
|
}
|
|
175
307
|
|
|
176
308
|
|
|
309
|
+
class My_Child_Component extends My_Component { }
|
|
310
|
+
|
|
311
|
+
|
|
177
312
|
// 2) create a running scope
|
|
178
|
-
const scope = new A_Scope({ name: 'TestScope', components: [
|
|
313
|
+
const scope = new A_Scope({ name: 'TestScope', components: [My_Child_Component] });
|
|
179
314
|
|
|
180
315
|
// 3) create an instance of the component from the scope
|
|
181
|
-
const myComponent = scope.resolve(
|
|
182
|
-
expect(myComponent).toBeInstanceOf(
|
|
316
|
+
const myComponent = scope.resolve(My_Child_Component);
|
|
317
|
+
expect(myComponent).toBeInstanceOf(My_Child_Component);
|
|
183
318
|
|
|
184
|
-
|
|
185
|
-
await myComponent.methodA();
|
|
319
|
+
await myComponent.feature1();
|
|
186
320
|
|
|
187
|
-
|
|
188
|
-
expect(executionOrder).toEqual(['stepOne', 'stepTwo', 'stepThree']);
|
|
321
|
+
expect(executionOrder).toEqual(['stepOne', 'stepTwo']);
|
|
189
322
|
});
|
|
190
|
-
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
it('Should allow override feature extension', async () => {
|
|
191
326
|
const executionOrder: string[] = [];
|
|
192
327
|
|
|
193
328
|
// 1) create a base component with some feature
|
|
194
329
|
class My_Component extends A_Component {
|
|
195
|
-
async methodA() {
|
|
196
|
-
await this.call('myFeature')
|
|
197
|
-
}
|
|
198
330
|
|
|
199
|
-
@A_Feature.
|
|
200
|
-
|
|
201
|
-
after: ['My_Component.stepTwo'],
|
|
202
|
-
})
|
|
203
|
-
async stepOne(
|
|
204
|
-
) {
|
|
331
|
+
@A_Feature.Define({ invoke: true })
|
|
332
|
+
async feature1() {
|
|
205
333
|
executionOrder.push('stepOne');
|
|
206
334
|
}
|
|
207
335
|
|
|
208
336
|
@A_Feature.Extend({
|
|
209
|
-
name: '
|
|
337
|
+
name: 'feature1',
|
|
210
338
|
})
|
|
211
|
-
async
|
|
339
|
+
async feature1Extension(
|
|
340
|
+
@A_Inject(A_Scope) scope: A_Scope
|
|
212
341
|
) {
|
|
213
342
|
executionOrder.push('stepTwo');
|
|
214
343
|
}
|
|
215
344
|
}
|
|
216
345
|
|
|
217
346
|
|
|
218
|
-
|
|
219
|
-
const scope = new A_Scope({ name: 'TestScope', components: [My_Component] });
|
|
220
|
-
|
|
221
|
-
// 3) create an instance of the component from the scope
|
|
222
|
-
const myComponent = scope.resolve(My_Component);
|
|
223
|
-
expect(myComponent).toBeInstanceOf(My_Component);
|
|
224
|
-
|
|
225
|
-
// 4) call the feature caller to execute the feature
|
|
226
|
-
await myComponent.methodA();
|
|
227
|
-
|
|
228
|
-
// 5) check the results
|
|
229
|
-
expect(executionOrder).toEqual(['stepTwo', 'stepOne']);
|
|
230
|
-
});
|
|
231
|
-
|
|
232
|
-
it('Should allow to define a feature', async () => {
|
|
233
|
-
const executionOrder: string[] = [];
|
|
234
|
-
|
|
235
|
-
// 1) create a base component with some feature
|
|
236
|
-
class My_Component extends A_Component {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
@A_Feature.Define({ invoke: true })
|
|
240
|
-
@A_Feature.Extend({
|
|
241
|
-
name: 'myFeature',
|
|
242
|
-
})
|
|
243
|
-
async feature1(
|
|
244
|
-
@A_Inject(A_Component) component: A_Component
|
|
245
|
-
) { }
|
|
347
|
+
class My_Child_Component extends My_Component {
|
|
246
348
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
executionOrder.push('stepOne');
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
@A_Feature.Define()
|
|
255
|
-
async feature2() {
|
|
256
|
-
await this.call('feature2');
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
@A_Feature.Extend({
|
|
260
|
-
name: 'feature2',
|
|
261
|
-
})
|
|
262
|
-
async feature2Extension() {
|
|
263
|
-
executionOrder.push('stepTwo');
|
|
349
|
+
async feature1Extension(
|
|
350
|
+
@A_Inject(A_Scope) scope: A_Scope
|
|
351
|
+
) {
|
|
352
|
+
executionOrder.push('stepThree');
|
|
264
353
|
}
|
|
265
|
-
|
|
266
354
|
}
|
|
267
355
|
|
|
268
356
|
|
|
269
357
|
// 2) create a running scope
|
|
270
|
-
const scope = new A_Scope({ name: 'TestScope', components: [
|
|
358
|
+
const scope = new A_Scope({ name: 'TestScope', components: [My_Child_Component] });
|
|
271
359
|
|
|
272
360
|
// 3) create an instance of the component from the scope
|
|
273
|
-
const myComponent = scope.resolve(
|
|
274
|
-
expect(myComponent).toBeInstanceOf(
|
|
361
|
+
const myComponent = scope.resolve(My_Child_Component);
|
|
362
|
+
expect(myComponent).toBeInstanceOf(My_Child_Component);
|
|
275
363
|
|
|
276
|
-
|
|
277
|
-
await myComponent.feature1(new A_Component());
|
|
364
|
+
await myComponent.feature1();
|
|
278
365
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
// 5) check the results
|
|
282
|
-
expect(executionOrder).toEqual(['stepOne', 'stepTwo']);
|
|
366
|
+
expect(executionOrder).toEqual(['stepOne', 'stepThree']);
|
|
283
367
|
});
|
|
284
368
|
});
|