@adaas/a-concept 0.1.21 → 0.1.22
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 +6 -2
- package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.js.map +1 -1
- package/dist/src/global/A-Feature/A-Feature-Extend.decorator.js +8 -5
- 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 +6 -2
- package/src/global/A-Feature/A-Feature-Extend.decorator.ts +8 -4
- package/tests/A-Meta.test.ts +131 -0
|
@@ -48,9 +48,13 @@ config = {}) {
|
|
|
48
48
|
}
|
|
49
49
|
const setName = `CONCEPT_ABSTRACTION::${name}`;
|
|
50
50
|
// Get the existed metadata or create a new one
|
|
51
|
-
const existedMeta = meta.get(metaKey)
|
|
51
|
+
const existedMeta = meta.get(metaKey) ?
|
|
52
|
+
new A_Meta_class_1.A_Meta().from(meta.get(metaKey))
|
|
53
|
+
: new A_Meta_class_1.A_Meta();
|
|
52
54
|
// Set the metadata of the method to define a custom Stage with name
|
|
53
|
-
const existedMetaValue =
|
|
55
|
+
const existedMetaValue = [
|
|
56
|
+
...(existedMeta.get(setName) || [])
|
|
57
|
+
];
|
|
54
58
|
const existedIndex = existedMetaValue.findIndex(item => item.handler === propertyKey);
|
|
55
59
|
const abstraction = {
|
|
56
60
|
name: setName,
|
|
@@ -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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"}
|
|
@@ -54,17 +54,20 @@ function A_Feature_Extend(param1) {
|
|
|
54
54
|
.meta(target)
|
|
55
55
|
.get(A_Component_constants_1.A_TYPES__ComponentMetaKey.FEATURES);
|
|
56
56
|
// Get the existed metadata or create a new one
|
|
57
|
-
const
|
|
58
|
-
.meta(target)
|
|
59
|
-
|
|
60
|
-
|
|
57
|
+
const meta = A_Context_class_1.A_Context
|
|
58
|
+
.meta(target);
|
|
59
|
+
const existedMeta = meta.get(A_Component_constants_1.A_TYPES__ComponentMetaKey.EXTENSIONS)
|
|
60
|
+
? new A_Meta_class_1.A_Meta().from(meta.get(A_Component_constants_1.A_TYPES__ComponentMetaKey.EXTENSIONS))
|
|
61
|
+
: new A_Meta_class_1.A_Meta();
|
|
61
62
|
if (existedDefinitions
|
|
62
63
|
&& existedDefinitions.size()
|
|
63
64
|
&& existedDefinitions.has(propertyKey)
|
|
64
65
|
&& existedDefinitions.get(propertyKey).invoke) {
|
|
65
66
|
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.`);
|
|
66
67
|
}
|
|
67
|
-
const existedMetaValue =
|
|
68
|
+
const existedMetaValue = [
|
|
69
|
+
...(existedMeta.get(targetRegexp.source) || [])
|
|
70
|
+
];
|
|
68
71
|
const existedIndex = existedMetaValue.findIndex(item => item.handler === propertyKey);
|
|
69
72
|
const extension = {
|
|
70
73
|
name: targetRegexp.source,
|
|
@@ -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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adaas/a-concept",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.22",
|
|
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",
|
|
@@ -74,10 +74,14 @@ export function A_Abstraction_Extend(
|
|
|
74
74
|
// Get the existed metadata or create a new one
|
|
75
75
|
const existedMeta: A_Meta<{
|
|
76
76
|
[Key: string]: A_TYPES__ConceptAbstraction[];
|
|
77
|
-
}> = meta.get(metaKey)
|
|
77
|
+
}> = meta.get(metaKey) ?
|
|
78
|
+
new A_Meta().from(meta.get(metaKey))
|
|
79
|
+
: new A_Meta();
|
|
78
80
|
|
|
79
81
|
// Set the metadata of the method to define a custom Stage with name
|
|
80
|
-
const existedMetaValue =
|
|
82
|
+
const existedMetaValue = [
|
|
83
|
+
...(existedMeta.get(setName) || [])
|
|
84
|
+
];
|
|
81
85
|
|
|
82
86
|
const existedIndex = existedMetaValue.findIndex(item => item.handler === propertyKey);
|
|
83
87
|
|
|
@@ -131,10 +131,12 @@ export function A_Feature_Extend(
|
|
|
131
131
|
|
|
132
132
|
|
|
133
133
|
// Get the existed metadata or create a new one
|
|
134
|
-
const
|
|
134
|
+
const meta = A_Context
|
|
135
135
|
.meta(target)
|
|
136
|
-
|
|
137
|
-
|
|
136
|
+
|
|
137
|
+
const existedMeta = meta.get(A_TYPES__ComponentMetaKey.EXTENSIONS)
|
|
138
|
+
? new A_Meta().from(meta.get(A_TYPES__ComponentMetaKey.EXTENSIONS)!)
|
|
139
|
+
: new A_Meta();
|
|
138
140
|
|
|
139
141
|
if (existedDefinitions
|
|
140
142
|
&& existedDefinitions.size()
|
|
@@ -147,7 +149,9 @@ export function A_Feature_Extend(
|
|
|
147
149
|
);
|
|
148
150
|
}
|
|
149
151
|
|
|
150
|
-
const existedMetaValue =
|
|
152
|
+
const existedMetaValue = [
|
|
153
|
+
...(existedMeta.get(targetRegexp.source) || [])
|
|
154
|
+
];
|
|
151
155
|
|
|
152
156
|
const existedIndex = existedMetaValue.findIndex(item => item.handler === propertyKey);
|
|
153
157
|
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { A_Component } from "@adaas/a-concept/global/A-Component/A-Component.class";
|
|
2
|
+
import { A_TYPES__ComponentMetaKey } from "@adaas/a-concept/global/A-Component/A-Component.constants";
|
|
3
|
+
import { A_ComponentMeta } from "@adaas/a-concept/global/A-Component/A-Component.meta";
|
|
4
|
+
import { A_Concept } from "@adaas/a-concept/global/A-Concept/A-Concept.class";
|
|
5
|
+
import { A_Context } from "@adaas/a-concept/global/A-Context/A-Context.class";
|
|
6
|
+
import { A_Feature } from "@adaas/a-concept/global/A-Feature/A-Feature.class";
|
|
7
|
+
import { A_Meta } from "@adaas/a-concept/global/A-Meta/A-Meta.class";
|
|
8
|
+
|
|
9
|
+
jest.retryTimes(0);
|
|
10
|
+
|
|
11
|
+
describe('A-Meta tests', () => {
|
|
12
|
+
it('Should Allow to create a Meta instance', async () => {
|
|
13
|
+
const meta = new A_Meta();
|
|
14
|
+
|
|
15
|
+
expect(meta).toBeInstanceOf(A_Meta);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('Should Allow to get prop meta for component Feature', async () => {
|
|
19
|
+
|
|
20
|
+
class ComponentA extends A_Component {
|
|
21
|
+
|
|
22
|
+
@A_Feature.Extend()
|
|
23
|
+
async test() {
|
|
24
|
+
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const meta = A_Context.meta(ComponentA);
|
|
29
|
+
|
|
30
|
+
expect(meta).toBeInstanceOf(A_ComponentMeta);
|
|
31
|
+
expect(meta.get(A_TYPES__ComponentMetaKey.EXTENSIONS)?.size()).toBe(1);
|
|
32
|
+
expect(meta.get(A_TYPES__ComponentMetaKey.EXTENSIONS)?.has('^.*test$')).toBe(true);
|
|
33
|
+
})
|
|
34
|
+
it('Should correctly create abstractions meta', async () => {
|
|
35
|
+
|
|
36
|
+
class ComponentB extends A_Component {
|
|
37
|
+
|
|
38
|
+
@A_Concept.Load()
|
|
39
|
+
async test() {
|
|
40
|
+
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
class ComponentC extends ComponentB {
|
|
45
|
+
async test() {
|
|
46
|
+
|
|
47
|
+
}
|
|
48
|
+
@A_Concept.Load()
|
|
49
|
+
async test2() {
|
|
50
|
+
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
class ComponentE extends ComponentB {
|
|
55
|
+
|
|
56
|
+
@A_Concept.Load()
|
|
57
|
+
async test3() {
|
|
58
|
+
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const metaC = A_Context.meta(ComponentC);
|
|
63
|
+
const metaE = A_Context.meta(ComponentE);
|
|
64
|
+
|
|
65
|
+
expect(metaC).toBeInstanceOf(A_ComponentMeta);
|
|
66
|
+
expect(metaC.get(A_TYPES__ComponentMetaKey.ABSTRACTIONS)?.size()).toBe(1);
|
|
67
|
+
expect(metaC.get(A_TYPES__ComponentMetaKey.ABSTRACTIONS)?.has('CONCEPT_ABSTRACTION::load')).toBe(true);
|
|
68
|
+
expect(metaC.get(A_TYPES__ComponentMetaKey.ABSTRACTIONS)?.get('CONCEPT_ABSTRACTION::load')?.length).toBe(2);
|
|
69
|
+
expect(metaC.get(A_TYPES__ComponentMetaKey.ABSTRACTIONS)?.get('CONCEPT_ABSTRACTION::load')?.map(e => e.handler)).toContain('test2');
|
|
70
|
+
expect(metaC.get(A_TYPES__ComponentMetaKey.ABSTRACTIONS)?.get('CONCEPT_ABSTRACTION::load')?.map(e => e.handler)).not.toContain('tes3');
|
|
71
|
+
|
|
72
|
+
expect(metaE).toBeInstanceOf(A_ComponentMeta);
|
|
73
|
+
expect(metaE.get(A_TYPES__ComponentMetaKey.ABSTRACTIONS)?.size()).toBe(1);
|
|
74
|
+
expect(metaE.get(A_TYPES__ComponentMetaKey.ABSTRACTIONS)?.has('CONCEPT_ABSTRACTION::load')).toBe(true);
|
|
75
|
+
expect(metaE.get(A_TYPES__ComponentMetaKey.ABSTRACTIONS)?.get('CONCEPT_ABSTRACTION::load')?.length).toBe(2);
|
|
76
|
+
expect(metaE.get(A_TYPES__ComponentMetaKey.ABSTRACTIONS)?.get('CONCEPT_ABSTRACTION::load')?.map(e => e.handler)).toContain('test3');
|
|
77
|
+
expect(metaE.get(A_TYPES__ComponentMetaKey.ABSTRACTIONS)?.get('CONCEPT_ABSTRACTION::load')?.map(e => e.handler)).not.toContain('test2');
|
|
78
|
+
})
|
|
79
|
+
|
|
80
|
+
it('Should correctly create features meta', async () => {
|
|
81
|
+
|
|
82
|
+
class ComponentB extends A_Component {
|
|
83
|
+
|
|
84
|
+
@A_Feature.Extend({
|
|
85
|
+
name: 'testFeature'
|
|
86
|
+
})
|
|
87
|
+
async test() {
|
|
88
|
+
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
class ComponentC extends ComponentB {
|
|
93
|
+
async test() {
|
|
94
|
+
|
|
95
|
+
}
|
|
96
|
+
@A_Feature.Extend({
|
|
97
|
+
name: 'testFeature'
|
|
98
|
+
})
|
|
99
|
+
async test2() {
|
|
100
|
+
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
class ComponentE extends ComponentB {
|
|
105
|
+
|
|
106
|
+
@A_Feature.Extend({
|
|
107
|
+
name: 'testFeature'
|
|
108
|
+
})
|
|
109
|
+
async test3() {
|
|
110
|
+
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
const metaC = A_Context.meta(ComponentC);
|
|
115
|
+
const metaE = A_Context.meta(ComponentE);
|
|
116
|
+
|
|
117
|
+
expect(metaC).toBeInstanceOf(A_ComponentMeta);
|
|
118
|
+
expect(metaC.get(A_TYPES__ComponentMetaKey.EXTENSIONS)?.size()).toBe(1);
|
|
119
|
+
expect(metaC.get(A_TYPES__ComponentMetaKey.EXTENSIONS)?.has('.*\\.testFeature$')).toBe(true);
|
|
120
|
+
expect(metaC.get(A_TYPES__ComponentMetaKey.EXTENSIONS)?.get('.*\\.testFeature$')?.length).toBe(2);
|
|
121
|
+
expect(metaC.get(A_TYPES__ComponentMetaKey.EXTENSIONS)?.get('.*\\.testFeature$')?.map(e => e.handler)).toContain('test2');
|
|
122
|
+
expect(metaC.get(A_TYPES__ComponentMetaKey.EXTENSIONS)?.get('.*\\.testFeature$')?.map(e => e.handler)).not.toContain('tes3');
|
|
123
|
+
|
|
124
|
+
expect(metaE).toBeInstanceOf(A_ComponentMeta);
|
|
125
|
+
expect(metaE.get(A_TYPES__ComponentMetaKey.EXTENSIONS)?.size()).toBe(1);
|
|
126
|
+
expect(metaE.get(A_TYPES__ComponentMetaKey.EXTENSIONS)?.has('.*\\.testFeature$')).toBe(true);
|
|
127
|
+
expect(metaE.get(A_TYPES__ComponentMetaKey.EXTENSIONS)?.get('.*\\.testFeature$')?.length).toBe(2);
|
|
128
|
+
expect(metaE.get(A_TYPES__ComponentMetaKey.EXTENSIONS)?.get('.*\\.testFeature$')?.map(e => e.handler)).toContain('test3');
|
|
129
|
+
expect(metaE.get(A_TYPES__ComponentMetaKey.EXTENSIONS)?.get('.*\\.testFeature$')?.map(e => e.handler)).not.toContain('test2');
|
|
130
|
+
})
|
|
131
|
+
})
|