@adaas/a-concept 0.1.61 → 0.2.2
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/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +1584 -1456
- package/dist/index.d.ts +1584 -1456
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/global/A-Abstraction/A-Abstraction.types.ts +2 -3
- package/src/global/A-Caller/A_Caller.types.ts +2 -1
- package/src/global/A-Component/A-Component.types.ts +2 -1
- package/src/global/A-Concept/A-Concept.types.ts +2 -1
- package/src/global/A-Container/A-Container.types.ts +2 -1
- package/src/global/A-Context/A-Context.class.ts +56 -25
- package/src/global/A-Dependency/A-Dependency-All.decorator.ts +77 -0
- package/src/global/A-Dependency/A-Dependency-Default.decorator.ts +4 -4
- package/src/global/A-Dependency/A-Dependency-Flat.decorator.ts +3 -2
- package/src/global/A-Dependency/A-Dependency-Load.decorator.ts +9 -13
- package/src/global/A-Dependency/A-Dependency-Parent.decorator.ts +2 -3
- package/src/global/A-Dependency/A-Dependency-Require.decorator.ts +1 -2
- package/src/global/A-Dependency/A-Dependency.class.ts +140 -5
- package/src/global/A-Dependency/A-Dependency.error.ts +3 -0
- package/src/global/A-Dependency/A-Dependency.types.ts +127 -3
- package/src/global/A-Entity/A-Entity.types.ts +2 -1
- package/src/global/A-Error/A_Error.types.ts +2 -1
- package/src/global/A-Feature/A-Feature-Define.decorator.ts +0 -1
- package/src/global/A-Feature/A-Feature-Extend.decorator.ts +1 -5
- package/src/global/A-Feature/A-Feature.types.ts +3 -3
- package/src/global/A-Fragment/A-Fragment.types.ts +2 -1
- package/src/global/A-Inject/A-Inject.decorator.ts +70 -42
- package/src/global/A-Inject/A-Inject.types.ts +2 -42
- package/src/global/A-Meta/A-Meta.decorator.ts +2 -1
- package/src/global/A-Meta/A-Meta.types.ts +2 -1
- package/src/global/A-Scope/A-Scope.class.ts +409 -389
- package/src/global/A-Scope/A-Scope.error.ts +2 -0
- package/src/global/A-Scope/A-Scope.types.ts +4 -8
- package/src/global/A-Stage/A-Stage.class.ts +19 -86
- package/src/global/A-Stage/A-Stage.types.ts +3 -1
- package/src/global/A-StepManager/A-StepManager.class.ts +1 -1
- package/src/global/ASEID/ASEID.class.ts +20 -0
- package/src/helpers/A_Common.helper.ts +4 -0
- package/src/helpers/A_TypeGuards.helper.ts +28 -3
- package/src/types/A_Common.types.ts +4 -0
- package/tests/A-Abstraction.test.ts +2 -0
- package/tests/A-Dependency.test.ts +49 -5
- package/tests/A-Feature.test.ts +44 -19
- package/tests/A-Scope.test.ts +38 -9
- package/tests/A-StepManager.test.ts +40 -39
package/tests/A-Scope.test.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { A_Feature } from '@adaas/a-concept/global/A-Feature/A-Feature.class';
|
|
|
7
7
|
import { A_Fragment } from '@adaas/a-concept/global/A-Fragment/A-Fragment.class';
|
|
8
8
|
import { A_Scope } from "@adaas/a-concept/global/A-Scope/A-Scope.class";
|
|
9
9
|
import { ASEID } from '@adaas/a-concept/global/ASEID/ASEID.class';
|
|
10
|
-
import { A_Error } from '../src';
|
|
10
|
+
import { A_Dependency, A_Error } from '../src';
|
|
11
11
|
|
|
12
12
|
jest.retryTimes(0);
|
|
13
13
|
|
|
@@ -149,7 +149,7 @@ describe('A-Scope tests', () => {
|
|
|
149
149
|
const entity2 = new MyEntity({ bar: 'baz' });
|
|
150
150
|
scope.register(entity1);
|
|
151
151
|
scope.register(entity2);
|
|
152
|
-
const resolved = scope.resolve(MyEntity, { query: { bar: 'baz' } });
|
|
152
|
+
const resolved = scope.resolve(new A_Dependency(MyEntity, { query: { bar: 'baz' } }));
|
|
153
153
|
expect(resolved).toBe(entity2);
|
|
154
154
|
|
|
155
155
|
|
|
@@ -168,11 +168,11 @@ describe('A-Scope tests', () => {
|
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
170
|
const scope = new A_Scope({ name: 'TestScope' });
|
|
171
|
-
for (let i = 0; i <
|
|
171
|
+
for (let i = 0; i < 15; i++) {
|
|
172
172
|
const entity = new MyEntity({ foo: 'bar' });
|
|
173
173
|
scope.register(entity);
|
|
174
174
|
}
|
|
175
|
-
const resolved = scope.
|
|
175
|
+
const resolved = scope.resolveDependency(new A_Dependency(MyEntity, { pagination: { count: 10 } }));
|
|
176
176
|
expect(Array.isArray(resolved)).toBe(true);
|
|
177
177
|
});
|
|
178
178
|
it('Should return array with pagination.count and provided filter', async () => {
|
|
@@ -197,7 +197,7 @@ describe('A-Scope tests', () => {
|
|
|
197
197
|
const entity = new MyEntity({ foo: 'baz' });
|
|
198
198
|
scope.register(entity);
|
|
199
199
|
}
|
|
200
|
-
const resolved = scope.resolve(MyEntity, { query: { foo: 'baz' }, pagination: { count: 10 } });
|
|
200
|
+
const resolved = scope.resolve(new A_Dependency(MyEntity, { query: { foo: 'baz' }, pagination: { count: 10, from: 'start' } }));
|
|
201
201
|
expect(Array.isArray(resolved)).toBe(true);
|
|
202
202
|
expect((resolved as Array<MyEntity>).length).toBe(5);
|
|
203
203
|
(resolved as Array<MyEntity>).forEach(r => {
|
|
@@ -369,7 +369,7 @@ describe('A-Scope tests', () => {
|
|
|
369
369
|
|
|
370
370
|
container.scope.register(new A_Error('Test Error'));
|
|
371
371
|
|
|
372
|
-
const resolved = container.scope.resolve(A_Error);
|
|
372
|
+
const resolved = container.scope.resolve(A_Error) as A_Error;
|
|
373
373
|
expect(resolved).toBeInstanceOf(A_Error);
|
|
374
374
|
expect(resolved?.message).toBe('Test Error');
|
|
375
375
|
|
|
@@ -619,7 +619,7 @@ describe('A-Scope tests', () => {
|
|
|
619
619
|
entities: [new MyEntity_A({ name: 'Entity2' })]
|
|
620
620
|
}).inherit(parentScope);
|
|
621
621
|
|
|
622
|
-
const resolvedByNameA = scope.resolve<MyEntity_A>('MyEntity_A');
|
|
622
|
+
const resolvedByNameA = scope.resolve<MyEntity_A>('MyEntity_A') as MyEntity_A;
|
|
623
623
|
expect(resolvedByNameA).toBeInstanceOf(MyEntity_A);
|
|
624
624
|
expect(resolvedByNameA?.name).toBe('Entity2');
|
|
625
625
|
});
|
|
@@ -646,9 +646,9 @@ describe('A-Scope tests', () => {
|
|
|
646
646
|
entities: [new MyEntity_A({ name: 'Entity2' })]
|
|
647
647
|
}).inherit(parentScope);
|
|
648
648
|
|
|
649
|
-
const resolvedByName = scope.resolve<MyEntity_B>('MyEntity_B');
|
|
649
|
+
const resolvedByName = scope.resolve<MyEntity_B>('MyEntity_B') as MyEntity_B;
|
|
650
650
|
expect(resolvedByName).toBeInstanceOf(MyEntity_B);
|
|
651
|
-
expect(resolvedByName?.name).toBe('Entity1')
|
|
651
|
+
expect(resolvedByName?.name).toBe('Entity1')
|
|
652
652
|
});
|
|
653
653
|
|
|
654
654
|
it('Should not resolve entity by class name from parent scope with resolveFlat', async () => {
|
|
@@ -676,4 +676,33 @@ describe('A-Scope tests', () => {
|
|
|
676
676
|
const resolveByNameFlat = scope.resolveFlat<MyEntity_A>('MyEntity_B');
|
|
677
677
|
expect(resolveByNameFlat).toBeUndefined();
|
|
678
678
|
});
|
|
679
|
+
|
|
680
|
+
it('Should allow to extend scope with imports', async () => {
|
|
681
|
+
class MyEntity_A extends A_Entity<{ name: string }> {
|
|
682
|
+
name!: string;
|
|
683
|
+
|
|
684
|
+
fromNew(newEntity: { name: string; }): void {
|
|
685
|
+
super.fromNew(newEntity);
|
|
686
|
+
this.name = newEntity.name;
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
class MyEntity_B extends MyEntity_A { }
|
|
691
|
+
|
|
692
|
+
const scopeA = new A_Scope({
|
|
693
|
+
name: 'ParentScope',
|
|
694
|
+
entities: [new MyEntity_B({ name: 'Entity1' })]
|
|
695
|
+
});
|
|
696
|
+
|
|
697
|
+
const scopeB = new A_Scope({
|
|
698
|
+
name: 'TestScope',
|
|
699
|
+
entities: [new MyEntity_A({ name: 'Entity2' })]
|
|
700
|
+
});
|
|
701
|
+
|
|
702
|
+
scopeB.import(scopeA);
|
|
703
|
+
|
|
704
|
+
const resolvedA = scopeB.resolve<MyEntity_B>(MyEntity_B);
|
|
705
|
+
expect(resolvedA).toBeInstanceOf(MyEntity_B);
|
|
706
|
+
expect(resolvedA?.name).toBe('Entity1');
|
|
707
|
+
});
|
|
679
708
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { A_Component } from "@adaas/a-concept/global/A-Component/A-Component.class";
|
|
2
|
+
import { A_Dependency } from "@adaas/a-concept/global/A-Dependency/A-Dependency.class";
|
|
2
3
|
import { A_StepsManager } from "@adaas/a-concept/global/A-StepManager/A-StepManager.class";
|
|
3
4
|
|
|
4
5
|
describe('A-StepManager tests', () => {
|
|
@@ -20,32 +21,32 @@ describe('A-StepManager tests', () => {
|
|
|
20
21
|
const sm = new A_StepsManager([
|
|
21
22
|
{
|
|
22
23
|
name: 'step1',
|
|
23
|
-
|
|
24
|
+
dependency: new A_Dependency(ComponentA),
|
|
24
25
|
handler: 'step1',
|
|
25
26
|
},
|
|
26
27
|
{
|
|
27
28
|
name: 'step2',
|
|
28
|
-
|
|
29
|
+
dependency: new A_Dependency(ComponentA),
|
|
29
30
|
handler: 'step2',
|
|
30
31
|
},
|
|
31
32
|
{
|
|
32
33
|
name: 'step3',
|
|
33
|
-
|
|
34
|
+
dependency: new A_Dependency(ComponentA),
|
|
34
35
|
handler: 'step3',
|
|
35
36
|
},
|
|
36
37
|
{
|
|
37
38
|
name: 'step4',
|
|
38
|
-
|
|
39
|
+
dependency: new A_Dependency(ComponentA),
|
|
39
40
|
handler: 'step4',
|
|
40
41
|
},
|
|
41
42
|
{
|
|
42
43
|
name: 'step5',
|
|
43
|
-
|
|
44
|
+
dependency: new A_Dependency(ComponentA),
|
|
44
45
|
handler: 'step5',
|
|
45
46
|
},
|
|
46
47
|
{
|
|
47
48
|
name: 'step6',
|
|
48
|
-
|
|
49
|
+
dependency: new A_Dependency(ComponentA),
|
|
49
50
|
handler: 'step6',
|
|
50
51
|
},
|
|
51
52
|
]);
|
|
@@ -76,34 +77,34 @@ describe('A-StepManager tests', () => {
|
|
|
76
77
|
const sm = new A_StepsManager([
|
|
77
78
|
{
|
|
78
79
|
name: 'step1',
|
|
79
|
-
|
|
80
|
+
dependency: new A_Dependency(ComponentA),
|
|
80
81
|
handler: 'step1',
|
|
81
82
|
},
|
|
82
83
|
{
|
|
83
84
|
name: 'step2',
|
|
84
|
-
|
|
85
|
+
dependency: new A_Dependency(ComponentA),
|
|
85
86
|
handler: 'step2',
|
|
86
87
|
},
|
|
87
88
|
{
|
|
88
89
|
name: 'step3',
|
|
89
|
-
|
|
90
|
+
dependency: new A_Dependency(ComponentA),
|
|
90
91
|
handler: 'step3',
|
|
91
92
|
},
|
|
92
93
|
{
|
|
93
94
|
name: 'step4',
|
|
94
|
-
|
|
95
|
+
dependency: new A_Dependency(ComponentA),
|
|
95
96
|
handler: 'step4',
|
|
96
97
|
},
|
|
97
98
|
{
|
|
98
99
|
name: 'step5',
|
|
99
|
-
|
|
100
|
+
dependency: new A_Dependency(ComponentA),
|
|
100
101
|
handler: 'step5',
|
|
101
102
|
before: /^.*\.*step2$/.source,
|
|
102
103
|
after: /^.*\.*step6$/.source
|
|
103
104
|
},
|
|
104
105
|
{
|
|
105
106
|
name: 'step6',
|
|
106
|
-
|
|
107
|
+
dependency: new A_Dependency(ComponentA),
|
|
107
108
|
handler: 'step6',
|
|
108
109
|
before: /^ComponentA\.step2$/.source
|
|
109
110
|
},
|
|
@@ -135,32 +136,32 @@ describe('A-StepManager tests', () => {
|
|
|
135
136
|
const sm = new A_StepsManager([
|
|
136
137
|
{
|
|
137
138
|
name: 'step1',
|
|
138
|
-
|
|
139
|
+
dependency: new A_Dependency(ComponentA),
|
|
139
140
|
handler: 'step1',
|
|
140
141
|
},
|
|
141
142
|
{
|
|
142
143
|
name: 'step2',
|
|
143
|
-
|
|
144
|
+
dependency: new A_Dependency(ComponentA),
|
|
144
145
|
handler: 'step2',
|
|
145
146
|
},
|
|
146
147
|
{
|
|
147
148
|
name: 'step3',
|
|
148
|
-
|
|
149
|
+
dependency: new A_Dependency(ComponentA),
|
|
149
150
|
handler: 'step3',
|
|
150
151
|
},
|
|
151
152
|
{
|
|
152
153
|
name: 'step4',
|
|
153
|
-
|
|
154
|
+
dependency: new A_Dependency(ComponentA),
|
|
154
155
|
handler: 'step4',
|
|
155
156
|
},
|
|
156
157
|
{
|
|
157
158
|
name: 'step5',
|
|
158
|
-
|
|
159
|
+
dependency: new A_Dependency(ComponentA),
|
|
159
160
|
handler: 'step5',
|
|
160
161
|
},
|
|
161
162
|
{
|
|
162
163
|
name: 'step6',
|
|
163
|
-
|
|
164
|
+
dependency: new A_Dependency(ComponentA),
|
|
164
165
|
handler: 'step6',
|
|
165
166
|
before: /.*/.source,
|
|
166
167
|
},
|
|
@@ -191,33 +192,33 @@ describe('A-StepManager tests', () => {
|
|
|
191
192
|
const sm = new A_StepsManager([
|
|
192
193
|
{
|
|
193
194
|
name: 'step1',
|
|
194
|
-
|
|
195
|
+
dependency: new A_Dependency(ComponentA),
|
|
195
196
|
handler: 'step1',
|
|
196
197
|
},
|
|
197
198
|
{
|
|
198
199
|
name: 'step2',
|
|
199
|
-
|
|
200
|
+
dependency: new A_Dependency(ComponentA),
|
|
200
201
|
handler: 'step2',
|
|
201
202
|
},
|
|
202
203
|
{
|
|
203
204
|
name: 'step3',
|
|
204
|
-
|
|
205
|
+
dependency: new A_Dependency(ComponentA),
|
|
205
206
|
handler: 'step3',
|
|
206
207
|
},
|
|
207
208
|
{
|
|
208
209
|
name: 'step4',
|
|
209
|
-
|
|
210
|
+
dependency: new A_Dependency(ComponentA),
|
|
210
211
|
handler: 'step4',
|
|
211
212
|
},
|
|
212
213
|
{
|
|
213
214
|
name: 'step5',
|
|
214
|
-
|
|
215
|
+
dependency: new A_Dependency(ComponentA),
|
|
215
216
|
handler: 'step5',
|
|
216
217
|
before: new RegExp('.*').source,
|
|
217
218
|
},
|
|
218
219
|
{
|
|
219
220
|
name: 'step6',
|
|
220
|
-
|
|
221
|
+
dependency: new A_Dependency(ComponentA),
|
|
221
222
|
handler: 'step6',
|
|
222
223
|
before: new RegExp('.*').source,
|
|
223
224
|
},
|
|
@@ -249,32 +250,32 @@ describe('A-StepManager tests', () => {
|
|
|
249
250
|
const sm = new A_StepsManager([
|
|
250
251
|
{
|
|
251
252
|
name: 'step1',
|
|
252
|
-
|
|
253
|
+
dependency: new A_Dependency(ComponentA),
|
|
253
254
|
handler: 'step1',
|
|
254
255
|
},
|
|
255
256
|
{
|
|
256
257
|
name: 'step2',
|
|
257
|
-
|
|
258
|
+
dependency: new A_Dependency(ComponentA),
|
|
258
259
|
handler: 'step2',
|
|
259
260
|
},
|
|
260
261
|
{
|
|
261
262
|
name: 'step3',
|
|
262
|
-
|
|
263
|
+
dependency: new A_Dependency(ComponentA),
|
|
263
264
|
handler: 'step3',
|
|
264
265
|
},
|
|
265
266
|
{
|
|
266
267
|
name: 'step4',
|
|
267
|
-
|
|
268
|
+
dependency: new A_Dependency(ComponentA),
|
|
268
269
|
handler: 'step4',
|
|
269
270
|
},
|
|
270
271
|
{
|
|
271
272
|
name: 'step5',
|
|
272
|
-
|
|
273
|
+
dependency: new A_Dependency(ComponentA),
|
|
273
274
|
handler: 'step5',
|
|
274
275
|
},
|
|
275
276
|
{
|
|
276
277
|
name: 'test',
|
|
277
|
-
|
|
278
|
+
dependency: new A_Dependency(ComponentA),
|
|
278
279
|
handler: 'test',
|
|
279
280
|
before: /^.*\.step(4|5)$/.source,
|
|
280
281
|
after: /^.*\.step(1|2)$/.source,
|
|
@@ -309,22 +310,22 @@ describe('A-StepManager tests', () => {
|
|
|
309
310
|
const sm = new A_StepsManager([
|
|
310
311
|
{
|
|
311
312
|
name: 'readFromEnv',
|
|
312
|
-
|
|
313
|
+
dependency: new A_Dependency(ComponentB),
|
|
313
314
|
handler: 'readFromEnv',
|
|
314
315
|
},
|
|
315
316
|
{
|
|
316
317
|
name: 'readFromFile',
|
|
317
|
-
|
|
318
|
+
dependency: new A_Dependency(ComponentB),
|
|
318
319
|
handler: 'readFromFile',
|
|
319
320
|
},
|
|
320
321
|
{
|
|
321
322
|
name: 'initialize',
|
|
322
|
-
|
|
323
|
+
dependency: new A_Dependency(ComponentA),
|
|
323
324
|
handler: 'initialize',
|
|
324
325
|
},
|
|
325
326
|
{
|
|
326
327
|
name: 'inject',
|
|
327
|
-
|
|
328
|
+
dependency: new A_Dependency(ComponentA),
|
|
328
329
|
handler: 'inject',
|
|
329
330
|
before: /ComponentB\.read.+/ig.source,
|
|
330
331
|
after: 'ComponentA.initialize'
|
|
@@ -356,28 +357,28 @@ describe('A-StepManager tests', () => {
|
|
|
356
357
|
const sm = new A_StepsManager([
|
|
357
358
|
{
|
|
358
359
|
name: 'step1',
|
|
359
|
-
|
|
360
|
+
dependency: new A_Dependency(ComponentA),
|
|
360
361
|
handler: 'step1',
|
|
361
362
|
},
|
|
362
363
|
{
|
|
363
364
|
name: 'step2',
|
|
364
|
-
|
|
365
|
+
dependency: new A_Dependency(ComponentA),
|
|
365
366
|
handler: 'step2',
|
|
366
367
|
},
|
|
367
368
|
{
|
|
368
369
|
name: 'step3',
|
|
369
|
-
|
|
370
|
+
dependency: new A_Dependency(ComponentA),
|
|
370
371
|
handler: 'step3',
|
|
371
372
|
override: /^.*\.step(4|5)$/.source
|
|
372
373
|
},
|
|
373
374
|
{
|
|
374
375
|
name: 'step4',
|
|
375
|
-
|
|
376
|
+
dependency: new A_Dependency(ComponentA),
|
|
376
377
|
handler: 'step4',
|
|
377
378
|
},
|
|
378
379
|
{
|
|
379
380
|
name: 'step5',
|
|
380
|
-
|
|
381
|
+
dependency: new A_Dependency(ComponentA),
|
|
381
382
|
handler: 'step5',
|
|
382
383
|
}
|
|
383
384
|
]);
|