@adaas/a-utils 0.1.33 → 0.1.35

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaas/a-utils",
3
- "version": "0.1.33",
3
+ "version": "0.1.35",
4
4
  "description": "A-Utils is a set of utilities that are used across the ADAAS ecosystem. This package is designed to be a collection of utilities that are used across the ADAAS ecosystem.",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./dist/index.cjs",
@@ -80,7 +80,7 @@
80
80
  "build": "tsup --config tsup.config.ts"
81
81
  },
82
82
  "dependencies": {
83
- "@adaas/a-concept": "^0.1.53"
83
+ "@adaas/a-concept": "^0.1.54"
84
84
  },
85
85
  "devDependencies": {
86
86
  "@types/chai": "^4.3.14",
@@ -120,22 +120,22 @@ export class A_SignalVector<
120
120
  *
121
121
  * @param signal
122
122
  */
123
- get(signal: A_Signal): Record<string, any> | undefined
124
- get(signalConstructor: A_TYPES__Component_Constructor<A_Signal>): Record<string, any> | undefined
125
- get(param1: A_Signal | A_TYPES__Component_Constructor<A_Signal>): Record<string, any> | undefined {
126
- let signalConstructor: A_TYPES__Component_Constructor<A_Signal>;
123
+ get<T extends A_Signal>(signal: T): T | undefined
124
+ get<T extends A_Signal>(signalConstructor: A_TYPES__Entity_Constructor<T>): T | undefined
125
+ get<T extends A_Signal>(param1: T | A_TYPES__Entity_Constructor<T>): T | undefined {
126
+ let signalConstructor: A_TYPES__Entity_Constructor<A_Signal>;
127
127
 
128
128
  if (param1 instanceof A_Entity) {
129
- signalConstructor = param1.constructor as A_TYPES__Component_Constructor<A_Signal>;
129
+ signalConstructor = param1.constructor as A_TYPES__Entity_Constructor<A_Signal>;
130
130
  } else {
131
- signalConstructor = param1;
131
+ signalConstructor = param1 as A_TYPES__Entity_Constructor<A_Signal>;
132
132
  }
133
133
 
134
134
  const index = this._signals.findIndex(s => s.constructor === signalConstructor);
135
135
  if (index === -1) {
136
136
  return undefined;
137
137
  }
138
- return this._signals[index];
138
+ return this._signals[index] as T;
139
139
  }
140
140
 
141
141
 
@@ -241,4 +241,3 @@ export class A_SignalVector<
241
241
  };
242
242
  }
243
243
  }
244
-
@@ -1,5 +1,5 @@
1
1
  import { A_Caller, A_Component, A_Concept, A_Container, A_Context, A_Feature, A_Inject, A_Scope } from "@adaas/a-concept";
2
- import { A_SignalVectorFeatures } from "@adaas/a-utils/lib/A-Signal/A-Signal.constants";
2
+ import { A_SignalVectorFeatures } from "@adaas/a-utils/lib/A-Signal/A-Signal.constants";
3
3
  import { A_SignalBus } from "@adaas/a-utils/lib/A-Signal/components/A-SignalBus.component";
4
4
  import { A_SignalConfig } from "@adaas/a-utils/lib/A-Signal/context/A-SignalConfig.context";
5
5
  import { A_Signal } from "@adaas/a-utils/lib/A-Signal/entities/A-Signal.entity";
@@ -10,6 +10,60 @@ import { A_SignalVector } from "@adaas/a-utils/lib/A-Signal/entities/A-SignalVec
10
10
  jest.retryTimes(0);
11
11
 
12
12
  describe('A-Signal tests', () => {
13
+ it('Should Allow to create a new Signal', async () => {
14
+ const signal = new A_Signal<{ message: string }>({
15
+ data: {
16
+ message: 'Hello, World!'
17
+ }
18
+ });
19
+
20
+ expect(signal).toBeDefined();
21
+ expect(signal).toBeInstanceOf(A_Signal);
22
+ expect(signal.data.message).toBe('Hello, World!');
23
+ });
24
+ it('Should Allow to create a new Signal Vector', async () => {
25
+ class MySignalA extends A_Signal<{ buttonId: string }> { }
26
+ class MySignalB extends A_Signal<{ pageId: string }> { }
27
+
28
+ const vector = new A_SignalVector({
29
+ structure: [MySignalA, MySignalB],
30
+ values: [
31
+ new MySignalA({ data: { buttonId: 'submit-order' } }),
32
+ new MySignalB({ data: { pageId: 'home-page' } })
33
+ ]
34
+ });
35
+
36
+ expect(vector).toBeDefined();
37
+ expect(vector).toBeInstanceOf(A_SignalVector);
38
+ expect(vector.length).toBe(2);
39
+ expect((await vector.toDataVector())[0]?.buttonId).toBe('submit-order');
40
+ expect((await vector.toDataVector())[1]?.pageId).toBe('home-page');
41
+ });
42
+ it('Should Allow to get signals fro Signal Vector', async () => {
43
+ class MySignalA extends A_Signal<{ buttonId: string }> { }
44
+ class MySignalB extends A_Signal<{ pageId: string }> { }
45
+ class MySignalC extends A_Signal<{ userId: string }> { }
46
+
47
+ const vector = new A_SignalVector({
48
+ structure: [MySignalA, MySignalB],
49
+ values: [
50
+ new MySignalA({ data: { buttonId: 'submit-order' } }),
51
+ new MySignalB({ data: { pageId: 'home-page' } })
52
+ ]
53
+ });
54
+
55
+ const signalA = vector.get(MySignalA);
56
+ const signalB = vector.get(MySignalB);
57
+ const signalC = vector.get(MySignalC);
58
+
59
+ expect(signalA).toBeDefined();
60
+ expect(signalA).toBeInstanceOf(MySignalA);
61
+ expect(signalA?.data.buttonId).toBe('submit-order');
62
+ expect(signalB).toBeDefined();
63
+ expect(signalB).toBeInstanceOf(MySignalB);
64
+ expect(signalB?.data.pageId).toBe('home-page');
65
+ expect(signalC).toBeUndefined();
66
+ });
13
67
  it('Should Allow to emit basic signal structure', async () => {
14
68
 
15
69
  let result: A_SignalVector | undefined = undefined;
@@ -130,4 +184,5 @@ describe('A-Signal tests', () => {
130
184
  expect((await result!.toDataVector())[2]).toBeUndefined();
131
185
 
132
186
  });
187
+
133
188
  })