@adaas/a-concept 0.1.10 → 0.1.12

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.
@@ -312,7 +312,7 @@ export declare class A_Scope<_ComponentType extends A_TYPES__Component_Construct
312
312
  /**
313
313
  * Provide a component, fragment or entity constructor or an array of constructors to resolve its instance(s) from the scope
314
314
  */
315
- param1: T): T | Array<T>;
315
+ param1: InstanceType<T>): T | Array<T>;
316
316
  /**
317
317
  * This method is used internally to resolve a component, fragment or entity by its constructor name
318
318
  *
@@ -213,52 +213,56 @@ class A_Scope {
213
213
  has(ctor) {
214
214
  let found = false;
215
215
  switch (true) {
216
- // 1) Check by string name.
216
+ // 1) Check if it's a Scope. It's always true since it returns itself
217
+ case A_TypeGuards_helper_1.A_TypeGuards.isScopeConstructor(ctor):
218
+ return true;
219
+ // 2) Check by string name.
217
220
  case typeof ctor === 'string': {
218
- // 1.1 Check if it's a component name
221
+ // 2.1 Check if it's a component name
219
222
  const possibleComponent = Array.from(this.allowedComponents).find(c => c.name === ctor);
220
223
  if (possibleComponent)
221
224
  found = true;
222
- // 1.2 Check if it's a fragment name
225
+ // 2.2 Check if it's a fragment name
223
226
  const possibleFragment = Array.from(this.allowedFragments).find(f => f.name === ctor);
224
227
  if (possibleFragment)
225
228
  found = true;
226
- // 1.4 Check if it's an entity name or entity static entity property
229
+ // 2.3 Check if it's an entity name or entity static entity property
227
230
  const possibleEntity = Array.from(this.allowedEntities).find(e => e.name === ctor);
228
231
  if (possibleEntity)
229
232
  found = true;
230
- // 1.5 If not found in current scope, check parent scope
233
+ // 2.4 If not found in current scope, check parent scope
231
234
  if (!!this._parent)
232
235
  return this._parent.has(ctor);
233
236
  return false;
234
237
  }
235
- // 2) Check if it's a Component
238
+ // 3) Check if it's a Component
236
239
  case A_TypeGuards_helper_1.A_TypeGuards.isComponentConstructor(ctor): {
237
240
  found = this.isAllowedComponent(ctor)
238
241
  || !![...this.allowedComponents]
239
242
  .find(c => A_Common_helper_1.A_CommonHelper.isInheritedFrom(c, ctor));
240
243
  break;
241
244
  }
242
- // 3) Check if it's an Entity
245
+ // 4) Check if it's an Entity
243
246
  case A_TypeGuards_helper_1.A_TypeGuards.isEntityConstructor(ctor): {
244
247
  found = this.isAllowedEntity(ctor)
245
248
  || !![...this.allowedEntities]
246
249
  .find(e => A_Common_helper_1.A_CommonHelper.isInheritedFrom(e, ctor));
247
250
  break;
248
251
  }
249
- // 4) Check if it's a Fragment
252
+ // 5) Check if it's a Fragment
250
253
  case A_TypeGuards_helper_1.A_TypeGuards.isFragmentConstructor(ctor): {
251
254
  found = this.isAllowedFragment(ctor)
252
255
  || !![...this.allowedFragments]
253
256
  .find(f => A_Common_helper_1.A_CommonHelper.isInheritedFrom(f, ctor));
254
257
  break;
255
258
  }
256
- // check scope issuer
259
+ // 6) Check scope issuer
257
260
  case this.issuer().constructor === ctor: {
258
261
  found = true;
259
262
  break;
260
263
  }
261
264
  }
265
+ // 7) Check parent scope in case not found
262
266
  if (!found && !!this._parent)
263
267
  try {
264
268
  return this._parent.has(ctor);
@@ -1 +1 @@
1
- {"version":3,"file":"A-Scope.class.js","sourceRoot":"","sources":["../../../../src/global/A-Scope/A-Scope.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"A-Scope.class.js","sourceRoot":"","sources":["../../../../src/global/A-Scope/A-Scope.class.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.A_TmpStage = exports.A_StepsManager = void 0;
4
+ const A_Error_class_1 = require("../global/A-Error/A_Error.class");
4
5
  const A_Stage_class_1 = require("../global/A-Stage/A-Stage.class");
5
6
  class A_StepsManager {
6
7
  constructor(entities) {
@@ -23,23 +24,28 @@ class A_StepsManager {
23
24
  this.entities.forEach(entity => this.graph.set(this.ID(entity), new Set()));
24
25
  // Add directed edges based on 'before' and 'after'
25
26
  this.entities.forEach(entity => {
26
- const { name, before = [], after = [] } = entity;
27
+ const entityId = this.ID(entity);
28
+ const { before = [], after = [] } = entity;
27
29
  // Add edges for 'before' dependencies
30
+ // If entity should execute before targets, then targets depend on entity
31
+ // So we add edges: target -> entity (target depends on entity)
28
32
  before.forEach(dep => {
29
33
  const targets = this.matchEntities(dep);
30
34
  targets.forEach(target => {
31
35
  if (!this.graph.has(target))
32
36
  this.graph.set(target, new Set());
33
- this.graph.get(target).add(name); // target -> name (target should be before name)
37
+ this.graph.get(target).add(entityId); // target depends on entity
34
38
  });
35
39
  });
36
- // Add edges for 'after' dependencies
40
+ // Add edges for 'after' dependencies
41
+ // If entity should execute after sources, then entity depends on sources
42
+ // So we add edges: entity -> source (entity depends on source)
37
43
  after.forEach(dep => {
38
44
  const sources = this.matchEntities(dep);
39
45
  sources.forEach(source => {
40
- if (!this.graph.has(name))
41
- this.graph.set(name, new Set());
42
- this.graph.get(name).add(source); // name -> source (name should be before source)
46
+ if (!this.graph.has(entityId))
47
+ this.graph.set(entityId, new Set());
48
+ this.graph.get(entityId).add(source); // entity depends on source
43
49
  });
44
50
  });
45
51
  });
@@ -54,7 +60,7 @@ class A_StepsManager {
54
60
  // Topological sort with cycle detection
55
61
  visit(node) {
56
62
  if (this.tempMark.has(node))
57
- throw new Error("Circular dependency detected");
63
+ throw new A_Error_class_1.A_Error("Circular dependency detected");
58
64
  if (!this.visited.has(node)) {
59
65
  this.tempMark.add(node);
60
66
  (this.graph.get(node) || []).forEach(neighbor => this.visit(neighbor));
@@ -1 +1 @@
1
- {"version":3,"file":"A_StepsManager.class.js","sourceRoot":"","sources":["../../../src/helpers/A_StepsManager.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"A_StepsManager.class.js","sourceRoot":"","sources":["../../../src/helpers/A_StepsManager.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.10",
3
+ "version": "0.1.12",
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",
@@ -20,7 +20,7 @@
20
20
  "ext": "ts, js"
21
21
  },
22
22
  "scripts": {
23
- "test": "jest ",
23
+ "test": "jest",
24
24
  "start": "nodemon ./tests/log.ts",
25
25
  "example:simple": "nodemon ./examples/simple/concept.ts",
26
26
  "example:simple:trace": "node -r tsconfig-paths/register -r ts-node/register -r ./trace-require.js ./examples/simple/concept.ts",
@@ -364,27 +364,31 @@ export class A_Scope<
364
364
  let found = false;
365
365
 
366
366
  switch (true) {
367
- // 1) Check by string name.
367
+ // 1) Check if it's a Scope. It's always true since it returns itself
368
+ case A_TypeGuards.isScopeConstructor(ctor):
369
+ return true;
370
+
371
+ // 2) Check by string name.
368
372
  case typeof ctor === 'string': {
369
- // 1.1 Check if it's a component name
373
+ // 2.1 Check if it's a component name
370
374
  const possibleComponent = Array.from(this.allowedComponents).find(c => c.name === ctor);
371
375
  if (possibleComponent) found = true;
372
376
 
373
- // 1.2 Check if it's a fragment name
377
+ // 2.2 Check if it's a fragment name
374
378
  const possibleFragment = Array.from(this.allowedFragments).find(f => f.name === ctor);
375
379
  if (possibleFragment) found = true;
376
380
 
377
- // 1.4 Check if it's an entity name or entity static entity property
381
+ // 2.3 Check if it's an entity name or entity static entity property
378
382
  const possibleEntity = Array.from(this.allowedEntities).find(e => e.name === ctor);
379
383
  if (possibleEntity) found = true;
380
384
 
381
- // 1.5 If not found in current scope, check parent scope
385
+ // 2.4 If not found in current scope, check parent scope
382
386
  if (!!this._parent)
383
387
  return this._parent.has(ctor);
384
388
 
385
389
  return false;
386
390
  }
387
- // 2) Check if it's a Component
391
+ // 3) Check if it's a Component
388
392
  case A_TypeGuards.isComponentConstructor(ctor): {
389
393
  found = this.isAllowedComponent(ctor)
390
394
  || !![...this.allowedComponents]
@@ -392,7 +396,7 @@ export class A_Scope<
392
396
 
393
397
  break;
394
398
  }
395
- // 3) Check if it's an Entity
399
+ // 4) Check if it's an Entity
396
400
  case A_TypeGuards.isEntityConstructor(ctor): {
397
401
  found = this.isAllowedEntity(ctor)
398
402
  || !![...this.allowedEntities]
@@ -400,7 +404,7 @@ export class A_Scope<
400
404
 
401
405
  break;
402
406
  }
403
- // 4) Check if it's a Fragment
407
+ // 5) Check if it's a Fragment
404
408
  case A_TypeGuards.isFragmentConstructor(ctor): {
405
409
  found = this.isAllowedFragment(ctor)
406
410
  || !![...this.allowedFragments]
@@ -408,14 +412,14 @@ export class A_Scope<
408
412
 
409
413
  break;
410
414
  }
411
-
412
- // check scope issuer
415
+ // 6) Check scope issuer
413
416
  case this.issuer().constructor === ctor: {
414
417
  found = true;
415
418
  break;
416
419
  }
417
420
  }
418
421
 
422
+ // 7) Check parent scope in case not found
419
423
  if (!found && !!this._parent)
420
424
  try {
421
425
  return this._parent.has(ctor as any);
@@ -596,7 +600,7 @@ export class A_Scope<
596
600
  /**
597
601
  * Provide a component, fragment or entity constructor or an array of constructors to resolve its instance(s) from the scope
598
602
  */
599
- param1: T,
603
+ param1: InstanceType<T>,
600
604
 
601
605
  ): T | Array<T>
602
606
  resolve<T extends A_TYPES__ScopeResolvableComponents>(
@@ -1,3 +1,4 @@
1
+ import { A_Error } from "../global/A-Error/A_Error.class";
1
2
  import { A_Feature } from "../global/A-Feature/A-Feature.class";
2
3
  import { A_TYPES__FeatureDefineDecoratorTemplateItem } from "../global/A-Feature/A-Feature.types";
3
4
  import { A_Stage } from "../global/A-Stage/A-Stage.class";
@@ -46,30 +47,36 @@ export class A_StepsManager {
46
47
 
47
48
  // Add directed edges based on 'before' and 'after'
48
49
  this.entities.forEach(entity => {
49
- const { name, before = [], after = [] } = entity;
50
+ const entityId = this.ID(entity);
51
+ const { before = [], after = [] } = entity;
50
52
 
51
53
  // Add edges for 'before' dependencies
54
+ // If entity should execute before targets, then targets depend on entity
55
+ // So we add edges: target -> entity (target depends on entity)
52
56
  before.forEach(dep => {
53
57
  const targets = this.matchEntities(dep);
54
58
  targets.forEach(target => {
55
59
  if (!this.graph.has(target)) this.graph.set(target, new Set());
56
- this.graph.get(target)!.add(name); // target -> name (target should be before name)
60
+ this.graph.get(target)!.add(entityId); // target depends on entity
57
61
  });
58
62
  });
59
63
 
60
- // Add edges for 'after' dependencies
64
+ // Add edges for 'after' dependencies
65
+ // If entity should execute after sources, then entity depends on sources
66
+ // So we add edges: entity -> source (entity depends on source)
61
67
  after.forEach(dep => {
62
68
  const sources = this.matchEntities(dep);
69
+
63
70
  sources.forEach(source => {
64
- if (!this.graph.has(name)) this.graph.set(name, new Set());
65
- this.graph.get(name)!.add(source); // name -> source (name should be before source)
71
+ if (!this.graph.has(entityId)) this.graph.set(entityId, new Set());
72
+ this.graph.get(entityId)!.add(source); // entity depends on source
66
73
  });
67
74
  });
68
75
  });
69
76
  }
70
77
 
71
78
  // Match entities by name or regex
72
- private matchEntities(pattern) {
79
+ private matchEntities(pattern: string): string[] {
73
80
  const regex = new RegExp(`^${pattern}$`);
74
81
  return this.entities
75
82
  .filter(entity => regex.test(this.ID(entity)))
@@ -77,8 +84,8 @@ export class A_StepsManager {
77
84
  }
78
85
 
79
86
  // Topological sort with cycle detection
80
- private visit(node) {
81
- if (this.tempMark.has(node)) throw new Error("Circular dependency detected");
87
+ private visit(node: string): void {
88
+ if (this.tempMark.has(node)) throw new A_Error("Circular dependency detected");
82
89
 
83
90
  if (!this.visited.has(node)) {
84
91
  this.tempMark.add(node);
@@ -139,4 +139,93 @@ describe('A-Feature tests', () => {
139
139
  expect(myComponent.sum).toBe(2);
140
140
 
141
141
  });
142
+ it('Should execute feature steps in base order', async () => {
143
+ const executionOrder: string[] = [];
144
+
145
+ // 1) create a base component with some feature
146
+ class My_Component extends A_Component {
147
+ async methodA() {
148
+ await this.call('myFeature')
149
+ }
150
+
151
+ @A_Feature.Extend({
152
+ name: 'myFeature',
153
+ })
154
+ async stepOne(
155
+ ) {
156
+ executionOrder.push('stepOne');
157
+ }
158
+
159
+ @A_Feature.Extend({
160
+ name: 'myFeature',
161
+ })
162
+ async stepTwo(
163
+ ) {
164
+ executionOrder.push('stepTwo');
165
+ }
166
+
167
+ @A_Feature.Extend({
168
+ name: 'myFeature',
169
+ })
170
+ async stepThree(
171
+ ) {
172
+ executionOrder.push('stepThree');
173
+ }
174
+ }
175
+
176
+
177
+ // 2) create a running scope
178
+ const scope = new A_Scope({ name: 'TestScope', components: [My_Component] });
179
+
180
+ // 3) create an instance of the component from the scope
181
+ const myComponent = scope.resolve(My_Component);
182
+ expect(myComponent).toBeInstanceOf(My_Component);
183
+
184
+ // 4) call the feature caller to execute the feature
185
+ await myComponent.methodA();
186
+
187
+ // 5) check the results
188
+ expect(executionOrder).toEqual(['stepOne', 'stepTwo', 'stepThree']);
189
+ });
190
+ it('Should execute feature steps in proper order', async () => {
191
+ const executionOrder: string[] = [];
192
+
193
+ // 1) create a base component with some feature
194
+ class My_Component extends A_Component {
195
+ async methodA() {
196
+ await this.call('myFeature')
197
+ }
198
+
199
+ @A_Feature.Extend({
200
+ name: 'myFeature',
201
+ after: ['My_Component.stepTwo'],
202
+ })
203
+ async stepOne(
204
+ ) {
205
+ executionOrder.push('stepOne');
206
+ }
207
+
208
+ @A_Feature.Extend({
209
+ name: 'myFeature',
210
+ })
211
+ async stepTwo(
212
+ ) {
213
+ executionOrder.push('stepTwo');
214
+ }
215
+ }
216
+
217
+
218
+ // 2) create a running scope
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
+ });
142
231
  });
@@ -289,8 +289,6 @@ describe('A-Scope tests', () => {
289
289
  });
290
290
 
291
291
  it('Should resolve inherited components', async () => {
292
-
293
-
294
292
  class componentA extends A_Component { }
295
293
  class componentB extends componentA { }
296
294
 
@@ -310,4 +308,22 @@ describe('A-Scope tests', () => {
310
308
  expect(scope.resolve(componentB)).toBeInstanceOf(componentB);
311
309
 
312
310
  });
311
+
312
+ it('Should be able to resolve itself', async () => {
313
+
314
+ const scope = new A_Scope({ name: 'TestScope' });
315
+
316
+ const resolved = scope.resolve(A_Scope);
317
+ expect(resolved).toBe(scope);
318
+ });
319
+ it('Should be able to resolve scope issuer', async () => {
320
+
321
+ const container = new A_Container();
322
+
323
+ const resolved = container.scope.resolve(A_Container);
324
+ expect(resolved).toBe(container);
325
+
326
+ expect(container.scope.issuer()).toBe(container);
327
+ });
328
+
313
329
  });