@adaas/a-utils 0.3.5 → 0.3.7
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/.conf/tsconfig.browser.json +4 -1
- package/.conf/tsconfig.node.json +5 -2
- package/dist/browser/a-service.mjs +12 -12
- package/dist/browser/a-service.mjs.map +1 -1
- package/dist/browser/a-signal.d.mts +51 -30
- package/dist/browser/a-signal.mjs +100 -65
- package/dist/browser/a-signal.mjs.map +1 -1
- package/dist/browser/chunk-S2RSPZXR.mjs +143 -0
- package/dist/browser/chunk-S2RSPZXR.mjs.map +1 -0
- package/dist/browser/helpers.d.mts +56 -0
- package/dist/browser/helpers.mjs +5 -0
- package/dist/browser/helpers.mjs.map +1 -0
- package/dist/node/{A-Signal.types-P5VKMKMs.d.mts → A-Signal.types-DxQHmPm6.d.mts} +23 -27
- package/dist/node/{A-Signal.types-P5VKMKMs.d.ts → A-Signal.types-DxQHmPm6.d.ts} +23 -27
- package/dist/node/helpers/A-Utils.helper.d.mts +56 -0
- package/dist/node/helpers/A-Utils.helper.d.ts +56 -0
- package/dist/node/helpers/A-Utils.helper.js +153 -0
- package/dist/node/helpers/A-Utils.helper.js.map +1 -0
- package/dist/node/helpers/A-Utils.helper.mjs +143 -0
- package/dist/node/helpers/A-Utils.helper.mjs.map +1 -0
- package/dist/node/helpers/index.d.mts +3 -0
- package/dist/node/helpers/index.d.ts +3 -0
- package/dist/node/helpers/index.js +12 -0
- package/dist/node/helpers/index.js.map +1 -0
- package/dist/node/helpers/index.mjs +4 -0
- package/dist/node/helpers/index.mjs.map +1 -0
- package/dist/node/lib/A-Service/A-Service.container.js +12 -12
- package/dist/node/lib/A-Service/A-Service.container.js.map +1 -1
- package/dist/node/lib/A-Service/A-Service.container.mjs +12 -12
- package/dist/node/lib/A-Service/A-Service.container.mjs.map +1 -1
- package/dist/node/lib/A-Signal/A-Signal.types.d.mts +1 -1
- package/dist/node/lib/A-Signal/A-Signal.types.d.ts +1 -1
- package/dist/node/lib/A-Signal/components/A-SignalBus.component.d.mts +1 -1
- package/dist/node/lib/A-Signal/components/A-SignalBus.component.d.ts +1 -1
- package/dist/node/lib/A-Signal/context/A-SignalConfig.context.d.mts +1 -1
- package/dist/node/lib/A-Signal/context/A-SignalConfig.context.d.ts +1 -1
- package/dist/node/lib/A-Signal/context/A-SignalState.context.d.mts +1 -1
- package/dist/node/lib/A-Signal/context/A-SignalState.context.d.ts +1 -1
- package/dist/node/lib/A-Signal/entities/A-Signal.entity.d.mts +1 -1
- package/dist/node/lib/A-Signal/entities/A-Signal.entity.d.ts +1 -1
- package/dist/node/lib/A-Signal/entities/A-Signal.entity.js +35 -59
- package/dist/node/lib/A-Signal/entities/A-Signal.entity.js.map +1 -1
- package/dist/node/lib/A-Signal/entities/A-Signal.entity.mjs +35 -59
- package/dist/node/lib/A-Signal/entities/A-Signal.entity.mjs.map +1 -1
- package/dist/node/lib/A-Signal/entities/A-SignalVector.entity.d.mts +29 -4
- package/dist/node/lib/A-Signal/entities/A-SignalVector.entity.d.ts +29 -4
- package/dist/node/lib/A-Signal/entities/A-SignalVector.entity.js +64 -5
- package/dist/node/lib/A-Signal/entities/A-SignalVector.entity.js.map +1 -1
- package/dist/node/lib/A-Signal/entities/A-SignalVector.entity.mjs +65 -6
- package/dist/node/lib/A-Signal/entities/A-SignalVector.entity.mjs.map +1 -1
- package/dist/node/lib/A-Signal/index.d.mts +1 -1
- package/dist/node/lib/A-Signal/index.d.ts +1 -1
- package/jest.config.ts +3 -1
- package/package.json +19 -3
- package/src/helpers/A-Utils.helper.ts +186 -0
- package/src/helpers/index.ts +1 -0
- package/src/lib/A-Service/A-Service.container.ts +12 -12
- package/src/lib/A-Signal/A-Signal.types.ts +2 -2
- package/src/lib/A-Signal/entities/A-Signal.entity.ts +44 -84
- package/src/lib/A-Signal/entities/A-SignalVector.entity.ts +80 -11
- package/tests/A-Signal.test.ts +16 -12
- package/tsconfig.json +4 -1
- package/tsup.config.ts +2 -0
|
@@ -20,7 +20,10 @@
|
|
|
20
20
|
"@adaas/a-utils/a-schedule": ["src/lib/A-Schedule"],
|
|
21
21
|
"@adaas/a-utils/a-service": ["src/lib/A-Service"],
|
|
22
22
|
"@adaas/a-utils/a-signal": ["src/lib/A-Signal"],
|
|
23
|
-
"@adaas/a-utils/a-state-machine": ["src/lib/A-StateMachine"]
|
|
23
|
+
"@adaas/a-utils/a-state-machine": ["src/lib/A-StateMachine"],
|
|
24
|
+
|
|
25
|
+
"@adaas/a-utils/helpers": ["src/helpers"],
|
|
26
|
+
|
|
24
27
|
},
|
|
25
28
|
},
|
|
26
29
|
}
|
package/.conf/tsconfig.node.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"rootDir": "../",
|
|
5
5
|
"outDir": "dist/node",
|
|
6
6
|
"baseUrl": "../",
|
|
7
|
-
|
|
7
|
+
|
|
8
8
|
"paths": {
|
|
9
9
|
"@adaas/a-utils/a-channel": ["src/lib/A-Channel"],
|
|
10
10
|
"@adaas/a-utils/a-command": ["src/lib/A-Command"],
|
|
@@ -20,7 +20,10 @@
|
|
|
20
20
|
"@adaas/a-utils/a-schedule": ["src/lib/A-Schedule"],
|
|
21
21
|
"@adaas/a-utils/a-service": ["src/lib/A-Service"],
|
|
22
22
|
"@adaas/a-utils/a-signal": ["src/lib/A-Signal"],
|
|
23
|
-
"@adaas/a-utils/a-state-machine": ["src/lib/A-StateMachine"]
|
|
23
|
+
"@adaas/a-utils/a-state-machine": ["src/lib/A-StateMachine"],
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
"@adaas/a-utils/helpers": ["src/helpers"],
|
|
24
27
|
},
|
|
25
28
|
|
|
26
29
|
"types": [
|
|
@@ -32,9 +32,9 @@ var A_Service = class extends A_Container {
|
|
|
32
32
|
*/
|
|
33
33
|
async load() {
|
|
34
34
|
try {
|
|
35
|
-
await this.call("_A_Service_onBeforeLoad" /* onBeforeLoad
|
|
36
|
-
await this.call("_A_Service_onLoad" /* onLoad
|
|
37
|
-
await this.call("_A_Service_onAfterLoad" /* onAfterLoad
|
|
35
|
+
await this.call("_A_Service_onBeforeLoad" /* onBeforeLoad */, this.scope);
|
|
36
|
+
await this.call("_A_Service_onLoad" /* onLoad */, this.scope);
|
|
37
|
+
await this.call("_A_Service_onAfterLoad" /* onAfterLoad */, this.scope);
|
|
38
38
|
} catch (error) {
|
|
39
39
|
let wrappedError;
|
|
40
40
|
switch (true) {
|
|
@@ -53,7 +53,7 @@ var A_Service = class extends A_Container {
|
|
|
53
53
|
break;
|
|
54
54
|
}
|
|
55
55
|
this.scope.register(wrappedError);
|
|
56
|
-
await this.call("_A_Service_onError" /* onError
|
|
56
|
+
await this.call("_A_Service_onError" /* onError */, this.scope);
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
@@ -61,9 +61,9 @@ var A_Service = class extends A_Container {
|
|
|
61
61
|
*/
|
|
62
62
|
async start() {
|
|
63
63
|
try {
|
|
64
|
-
await this.call("_A_Service_onBeforeStart" /* onBeforeStart
|
|
65
|
-
await this.call("_A_Service_onStart" /* onStart
|
|
66
|
-
await this.call("_A_Service_onAfterStart" /* onAfterStart
|
|
64
|
+
await this.call("_A_Service_onBeforeStart" /* onBeforeStart */, this.scope);
|
|
65
|
+
await this.call("_A_Service_onStart" /* onStart */, this.scope);
|
|
66
|
+
await this.call("_A_Service_onAfterStart" /* onAfterStart */, this.scope);
|
|
67
67
|
} catch (error) {
|
|
68
68
|
let wrappedError;
|
|
69
69
|
switch (true) {
|
|
@@ -82,7 +82,7 @@ var A_Service = class extends A_Container {
|
|
|
82
82
|
break;
|
|
83
83
|
}
|
|
84
84
|
this.scope.register(wrappedError);
|
|
85
|
-
await this.call("_A_Service_onError" /* onError
|
|
85
|
+
await this.call("_A_Service_onError" /* onError */, this.scope);
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
@@ -90,9 +90,9 @@ var A_Service = class extends A_Container {
|
|
|
90
90
|
*/
|
|
91
91
|
async stop() {
|
|
92
92
|
try {
|
|
93
|
-
await this.call("_A_Service_onBeforeStop" /* onBeforeStop
|
|
94
|
-
await this.call("_A_Service_onStop" /* onStop
|
|
95
|
-
await this.call("_A_Service_onAfterStop" /* onAfterStop
|
|
93
|
+
await this.call("_A_Service_onBeforeStop" /* onBeforeStop */, this.scope);
|
|
94
|
+
await this.call("_A_Service_onStop" /* onStop */, this.scope);
|
|
95
|
+
await this.call("_A_Service_onAfterStop" /* onAfterStop */, this.scope);
|
|
96
96
|
} catch (error) {
|
|
97
97
|
let wrappedError;
|
|
98
98
|
switch (true) {
|
|
@@ -111,7 +111,7 @@ var A_Service = class extends A_Container {
|
|
|
111
111
|
break;
|
|
112
112
|
}
|
|
113
113
|
this.scope.register(wrappedError);
|
|
114
|
-
await this.call("_A_Service_onError" /* onError
|
|
114
|
+
await this.call("_A_Service_onError" /* onError */, this.scope);
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
async [_j = "_A_Service_onBeforeLoad" /* onBeforeLoad */](polyfill, ...args) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/A-Service/A-Service.constants.ts","../../src/lib/A-Service/A-Service.error.ts","../../src/lib/A-Service/A-Service.container.ts"],"names":["A_ServiceFeatures","A_Error"],"mappings":";;;;;;;;;AAAO,IAAK,iBAAA,qBAAAA,kBAAAA,KAAL;AAEH,EAAAA,mBAAA,cAAA,CAAA,GAAe,yBAAA;AACf,EAAAA,mBAAA,QAAA,CAAA,GAAS,mBAAA;AACT,EAAAA,mBAAA,aAAA,CAAA,GAAc,wBAAA;AAEd,EAAAA,mBAAA,eAAA,CAAA,GAAgB,0BAAA;AAChB,EAAAA,mBAAA,SAAA,CAAA,GAAU,oBAAA;AACV,EAAAA,mBAAA,cAAA,CAAA,GAAe,yBAAA;AAEf,EAAAA,mBAAA,cAAA,CAAA,GAAe,yBAAA;AACf,EAAAA,mBAAA,QAAA,CAAA,GAAS,mBAAA;AACT,EAAAA,mBAAA,aAAA,CAAA,GAAc,wBAAA;AAGd,EAAAA,mBAAA,SAAA,CAAA,GAAU,oBAAA;AAfF,EAAA,OAAAA,kBAAAA;AAAA,CAAA,EAAA,iBAAA,IAAA,EAAA;ACIL,IAAM,eAAA,GAAN,cAA8B,OAAA,CAAQ;AAU7C,CAAA;AAVa,eAAA,CAEO,gBAAA,GAAmB,oBAAA;AAF1B,eAAA,CAIO,iBAAA,GAAoB,qBAAA;AAJ3B,eAAA,CAMO,gBAAA,GAAmB,oBAAA;ACVvC,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAmBO,IAAM,SAAA,GAAN,cAAwB,WAAA,CAAY;AAAA;AAAA;AAAA;AAAA,EAOvC,MAAM,IAAA,GAAO;AACT,IAAA,IAAI;AACA,MAAA,MAAM,KAAK,IAAA,CAAA,yBAAA,oBAAmC;AAE9C,MAAA,MAAM,KAAK,IAAA,CAAA,mBAAA,cAA6B;AAExC,MAAA,MAAM,KAAK,IAAA,CAAA,wBAAA,mBAAkC;AAAA,IAEjD,SAAS,KAAA,EAAO;AAEZ,MAAA,IAAI,YAAA;AAEJ,MAAA,QAAQ,IAAA;AAAM,QACV,KAAK,KAAA,YAAiB,eAAA;AAClB,UAAA,YAAA,GAAe,KAAA;AACf,UAAA;AAAA,QAEJ,MAAK,KAAA,YAAiBC,OAAAA,IAAW,KAAA,CAAM,aAAA,YAAyB,eAAA;AAC5D,UAAA,YAAA,GAAe,KAAA,CAAM,aAAA;AACrB,UAAA;AAAA,QAEJ;AACI,UAAA,YAAA,GAAe,IAAI,eAAA,CAAgB;AAAA,YAC/B,OAAO,eAAA,CAAgB,gBAAA;AAAA,YACvB,WAAA,EAAa,iDAAA;AAAA,YACb,aAAA,EAAe;AAAA,WAClB,CAAA;AACD,UAAA;AAAA;AAGR,MAAA,IAAA,CAAK,KAAA,CAAM,SAAS,YAAY,CAAA;AAEhC,MAAA,MAAM,KAAK,IAAA,CAAA,oBAAA,eAA8B;AAAA,IAC7C;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,KAAA,GAAQ;AACV,IAAA,IAAI;AACA,MAAA,MAAM,KAAK,IAAA,CAAA,0BAAA,qBAAoC;AAE/C,MAAA,MAAM,KAAK,IAAA,CAAA,oBAAA,eAA8B;AAEzC,MAAA,MAAM,KAAK,IAAA,CAAA,yBAAA,oBAAmC;AAAA,IAElD,SAAS,KAAA,EAAO;AAEZ,MAAA,IAAI,YAAA;AAEJ,MAAA,QAAQ,IAAA;AAAM,QACV,KAAK,KAAA,YAAiB,eAAA;AAClB,UAAA,YAAA,GAAe,KAAA;AACf,UAAA;AAAA,QAEJ,MAAK,KAAA,YAAiBA,OAAAA,IAAW,KAAA,CAAM,aAAA,YAAyB,eAAA;AAC5D,UAAA,YAAA,GAAe,KAAA,CAAM,aAAA;AACrB,UAAA;AAAA,QAEJ;AACI,UAAA,YAAA,GAAe,IAAI,eAAA,CAAgB;AAAA,YAC/B,OAAO,eAAA,CAAgB,iBAAA;AAAA,YACvB,WAAA,EAAa,iDAAA;AAAA,YACb,aAAA,EAAe;AAAA,WAClB,CAAA;AACD,UAAA;AAAA;AAGR,MAAA,IAAA,CAAK,KAAA,CAAM,SAAS,YAAY,CAAA;AAEhC,MAAA,MAAM,KAAK,IAAA,CAAA,oBAAA,eAA8B;AAAA,IAC7C;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,IAAA,GAAO;AACT,IAAA,IAAI;AACA,MAAA,MAAM,KAAK,IAAA,CAAA,yBAAA,oBAAmC;AAE9C,MAAA,MAAM,KAAK,IAAA,CAAA,mBAAA,cAA6B;AAExC,MAAA,MAAM,KAAK,IAAA,CAAA,wBAAA,mBAAkC;AAAA,IAEjD,SAAS,KAAA,EAAO;AAEZ,MAAA,IAAI,YAAA;AAEJ,MAAA,QAAQ,IAAA;AAAM,QACV,KAAK,KAAA,YAAiB,eAAA;AAClB,UAAA,YAAA,GAAe,KAAA;AACf,UAAA;AAAA,QAEJ,MAAK,KAAA,YAAiBA,OAAAA,IAAW,KAAA,CAAM,aAAA,YAAyB,eAAA;AAC5D,UAAA,YAAA,GAAe,KAAA,CAAM,aAAA;AACrB,UAAA;AAAA,QAEJ;AACI,UAAA,YAAA,GAAe,IAAI,eAAA,CAAgB;AAAA,YAC/B,OAAO,eAAA,CAAgB,gBAAA;AAAA,YACvB,WAAA,EAAa,iDAAA;AAAA,YACb,aAAA,EAAe;AAAA,WAClB,CAAA;AACD,UAAA;AAAA;AAGR,MAAA,IAAA,CAAK,KAAA,CAAM,SAAS,YAAY,CAAA;AAEhC,MAAA,MAAM,KAAK,IAAA,CAAA,oBAAA,eAA8B;AAAA,IAC7C;AAAA,EACJ;AAAA,EAUA,OAAiB,EAAA,GAAA,yBAAA,oBAA8B,CACrB,QAAA,EAAA,GACnB,IAAA,EACU;AAEb,IAAA,IAAI,CAAC,QAAA,EAAU;AACX,MAAA,IAAA,CAAK,KAAA,CAAM,SAAS,UAAU,CAAA;AAC9B,MAAA,QAAA,GAAW,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,UAAU,CAAA;AAAA,IAC5C;AAAA,EACJ;AAAA,EAGA,OAAiB,EAAA,GAAA,mBAAA,cAAwB,CAAA,GAAK,IAAA,EAAa;AAAA,EAAE;AAAA,EAG7D,OAAiB,EAAA,GAAA,wBAAA,mBAA6B,CAAA,GAAK,IAAA,EAAa;AAAA,EAAE;AAAA,EAIlE,OAAiB,EAAA,GAAA,0BAAA,qBAA+B,CAAA,GAAK,IAAA,EAAa;AAAA,EAAE;AAAA,EAGpE,OAAiB,EAAA,GAAA,oBAAA,eAAyB,CAAA,GAAK,IAAA,EAAa;AAAA,EAAE;AAAA,EAG9D,OAAkB,EAAA,GAAA,yBAAA,oBAA8B,CAAA,GAAK,IAAA,EAAa;AAAA,EAAE;AAAA,EAKpE,OAAiB,EAAA,GAAA,yBAAA,oBAA8B,CAAA,GAAK,IAAA,EAAa;AAAA,EAAE;AAAA,EAGnE,OAAiB,EAAA,GAAA,mBAAA,cAAwB,CAAA,GAAK,IAAA,EAAa;AAAA,EAAE;AAAA,EAG7D,OAAiB,EAAA,GAAA,wBAAA,mBAA6B,CAAA,GAAK,IAAA,EAAa;AAAA,EAAE;AAAA,EAOlE,OAAiB,EAAA,GAAA,oBAAA,eAAyB,CACnB,KAAA,EACC,WACjB,IAAA,EACL;AACE,IAAA,MAAA,EAAQ,MAAM,KAAK,CAAA;AAAA,EACvB;AAEJ;AAlLU,eAAA,CAAA;AAAA,EAJL,UAAU,IAAA;AAAK,CAAA,EAHP,SAAA,CAOH,SAAA,EAAA,MAAA,EAAA,CAAA,CAAA;AA0CA,eAAA,CAAA;AAAA,EAJL,UAAU,KAAA;AAAM,CAAA,EA7CR,SAAA,CAiDH,SAAA,EAAA,OAAA,EAAA,CAAA,CAAA;AAyCA,eAAA,CAAA;AAAA,EAJL,UAAU,IAAA;AAAK,CAAA,EAtFP,SAAA,CA0FH,SAAA,EAAA,MAAA,EAAA,CAAA,CAAA;AA4CW,eAAA,CAAA;AAAA,EADhB,UAAU,MAAA,EAAO;AAAA,EAEb,4BAAS,UAAU,CAAA;AAAA,CAAA,EAvIf,SAAA,CAsIQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAYA,eAAA,CAAA;AAAA,EADhB,UAAU,MAAA;AAAO,CAAA,EAjJT,SAAA,CAkJQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADhB,UAAU,MAAA;AAAO,CAAA,EApJT,SAAA,CAqJQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EADhB,UAAU,MAAA;AAAO,CAAA,EAxJT,SAAA,CAyJQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADhB,UAAU,MAAA;AAAO,CAAA,EA3JT,SAAA,CA4JQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAGC,eAAA,CAAA;AAAA,EADjB,UAAU,MAAA;AAAO,CAAA,EA9JT,SAAA,CA+JS,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAKD,eAAA,CAAA;AAAA,EADhB,UAAU,MAAA;AAAO,CAAA,EAnKT,SAAA,CAoKQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADhB,UAAU,MAAA;AAAO,CAAA,EAtKT,SAAA,CAuKQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADhB,UAAU,MAAA;AAAO,CAAA,EAzKT,SAAA,CA0KQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAOA,eAAA,CAAA;AAAA,EAHhB,UAAU,MAAA,CAAO;AAAA,IACd,MAAA,EAAQ;AAAA,GACX,CAAA;AAAA,EAEI,4BAASA,OAAO,CAAA,CAAA;AAAA,EAChB,4BAAS,QAAQ,CAAA;AAAA,CAAA,EAnLb,SAAA,CAiLQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAjLR,SAAA,GAAN,eAAA,CAAA;AAAA,EALN,QAAQ,SAAA,CAAU;AAAA,IACf,SAAA,EAAW,SAAA;AAAA,IACX,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa;AAAA,GAChB;AAAA,CAAA,EACY,SAAA,CAAA","file":"a-service.mjs","sourcesContent":["export enum A_ServiceFeatures {\n\n onBeforeLoad = '_A_Service_onBeforeLoad',\n onLoad = '_A_Service_onLoad',\n onAfterLoad = '_A_Service_onAfterLoad',\n\n onBeforeStart = '_A_Service_onBeforeStart',\n onStart = '_A_Service_onStart',\n onAfterStart = '_A_Service_onAfterStart',\n\n onBeforeStop = '_A_Service_onBeforeStop',\n onStop = '_A_Service_onStop',\n onAfterStop = '_A_Service_onAfterStop',\n\n\n onError = '_A_Service_onError',\n}","import { A_Error } from \"@adaas/a-concept\";\n\n\n\nexport class A_Service_Error extends A_Error {\n\n static readonly ServiceLoadError = 'Service load error';\n\n static readonly ServiceStartError = 'Service start error';\n\n static readonly ServiceStopError = 'Service stop error';\n\n \n\n}","import { A_Concept, A_Container, A_Error, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_ServiceFeatures } from \"./A-Service.constants\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { A_Service_Error } from \"./A-Service.error\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { A_Polyfill } from '@adaas/a-utils/a-polyfill';\n\n\n\n/**\n * A-Service is a container that can run different types of services, such as HTTP servers, workers, etc.\n * Depending on the provided config and configuration, it will load the necessary components and start the service.\n * \n */\n@A_Frame.Container({\n namespace: 'A-Utils',\n name: 'A-Service',\n description: 'Service container that manages the lifecycle of various types of services, such as HTTP servers and workers or UI loader. It dynamically loads necessary components based on the provided configuration and orchestrates the start and stop processes, ensuring proper error handling and extensibility through feature hooks.'\n})\nexport class A_Service extends A_Container {\n\n\n @A_Concept.Load()\n /**\n * Load the service\n */\n async load() {\n try {\n await this.call(A_ServiceFeatures.onBeforeLoad);\n\n await this.call(A_ServiceFeatures.onLoad);\n\n await this.call(A_ServiceFeatures.onAfterLoad);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceLoadError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError);\n }\n\n }\n\n\n @A_Concept.Start()\n /**\n * Start the server\n */\n async start() {\n try {\n await this.call(A_ServiceFeatures.onBeforeStart);\n\n await this.call(A_ServiceFeatures.onStart);\n\n await this.call(A_ServiceFeatures.onAfterStart);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceStartError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError);\n }\n\n }\n\n @A_Concept.Stop()\n /**\n * Stop the server\n */\n async stop() {\n try {\n await this.call(A_ServiceFeatures.onBeforeStop);\n\n await this.call(A_ServiceFeatures.onStop);\n\n await this.call(A_ServiceFeatures.onAfterStop);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceStopError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError);\n }\n }\n\n\n\n\n // ======================================================================================\n // ============================= A-Service Lifecycle =================================\n // ======================================================================================\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeLoad](\n @A_Inject(A_Polyfill) polyfill: A_Polyfill,\n ...args: any[]\n ): Promise<void> {\n // Initialize Polyfill\n if (!polyfill) {\n this.scope.register(A_Polyfill);\n polyfill = this.scope.resolve(A_Polyfill)!\n }\n }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onLoad](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterLoad](...args: any[]) { }\n\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeStart](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onStart](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterStart](...args: any[]) { }\n\n\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeStop](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onStop](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterStop](...args: any[]) { }\n\n\n\n @A_Feature.Extend({\n before: /.*/\n })\n protected async [A_ServiceFeatures.onError](\n @A_Inject(A_Error) error: A_Error,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ) {\n logger?.error(error);\n }\n\n}\n\n\n\n\n\n\n\n\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/lib/A-Service/A-Service.constants.ts","../../src/lib/A-Service/A-Service.error.ts","../../src/lib/A-Service/A-Service.container.ts"],"names":["A_ServiceFeatures","A_Error"],"mappings":"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","file":"a-service.mjs","sourcesContent":["export enum A_ServiceFeatures {\n\n onBeforeLoad = '_A_Service_onBeforeLoad',\n onLoad = '_A_Service_onLoad',\n onAfterLoad = '_A_Service_onAfterLoad',\n\n onBeforeStart = '_A_Service_onBeforeStart',\n onStart = '_A_Service_onStart',\n onAfterStart = '_A_Service_onAfterStart',\n\n onBeforeStop = '_A_Service_onBeforeStop',\n onStop = '_A_Service_onStop',\n onAfterStop = '_A_Service_onAfterStop',\n\n\n onError = '_A_Service_onError',\n}","import { A_Error } from \"@adaas/a-concept\";\n\n\n\nexport class A_Service_Error extends A_Error {\n\n static readonly ServiceLoadError = 'Service load error';\n\n static readonly ServiceStartError = 'Service start error';\n\n static readonly ServiceStopError = 'Service stop error';\n\n \n\n}","import { A_Concept, A_Container, A_Error, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_ServiceFeatures } from \"./A-Service.constants\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { A_Service_Error } from \"./A-Service.error\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { A_Polyfill } from '@adaas/a-utils/a-polyfill';\n\n\n\n/**\n * A-Service is a container that can run different types of services, such as HTTP servers, workers, etc.\n * Depending on the provided config and configuration, it will load the necessary components and start the service.\n * \n */\n@A_Frame.Container({\n namespace: 'A-Utils',\n name: 'A-Service',\n description: 'Service container that manages the lifecycle of various types of services, such as HTTP servers and workers or UI loader. It dynamically loads necessary components based on the provided configuration and orchestrates the start and stop processes, ensuring proper error handling and extensibility through feature hooks.'\n})\nexport class A_Service extends A_Container {\n\n\n @A_Concept.Load()\n /**\n * Load the service\n */\n async load() {\n try {\n await this.call(A_ServiceFeatures.onBeforeLoad, this.scope);\n\n await this.call(A_ServiceFeatures.onLoad, this.scope);\n\n await this.call(A_ServiceFeatures.onAfterLoad, this.scope);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceLoadError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError, this.scope);\n }\n\n }\n\n\n @A_Concept.Start()\n /**\n * Start the server\n */\n async start() {\n try {\n await this.call(A_ServiceFeatures.onBeforeStart, this.scope);\n\n await this.call(A_ServiceFeatures.onStart, this.scope);\n\n await this.call(A_ServiceFeatures.onAfterStart, this.scope);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceStartError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError, this.scope);\n }\n\n }\n\n @A_Concept.Stop()\n /**\n * Stop the server\n */\n async stop() {\n try {\n await this.call(A_ServiceFeatures.onBeforeStop, this.scope);\n\n await this.call(A_ServiceFeatures.onStop, this.scope);\n\n await this.call(A_ServiceFeatures.onAfterStop, this.scope);\n\n } catch (error) {\n\n let wrappedError;\n\n switch (true) {\n case error instanceof A_Service_Error:\n wrappedError = error;\n break;\n\n case error instanceof A_Error && error.originalError instanceof A_Service_Error:\n wrappedError = error.originalError;\n break;\n\n default:\n wrappedError = new A_Service_Error({\n title: A_Service_Error.ServiceStopError,\n description: 'An error occurred while processing the request.',\n originalError: error\n })\n break;\n }\n\n this.scope.register(wrappedError);\n\n await this.call(A_ServiceFeatures.onError, this.scope);\n }\n }\n\n\n\n\n // ======================================================================================\n // ============================= A-Service Lifecycle =================================\n // ======================================================================================\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeLoad](\n @A_Inject(A_Polyfill) polyfill: A_Polyfill,\n ...args: any[]\n ): Promise<void> {\n // Initialize Polyfill\n if (!polyfill) {\n this.scope.register(A_Polyfill);\n polyfill = this.scope.resolve(A_Polyfill)!\n }\n }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onLoad](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterLoad](...args: any[]) { }\n\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeStart](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onStart](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterStart](...args: any[]) { }\n\n\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onBeforeStop](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onStop](...args: any[]) { }\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterStop](...args: any[]) { }\n\n\n\n @A_Feature.Extend({\n before: /.*/\n })\n protected async [A_ServiceFeatures.onError](\n @A_Inject(A_Error) error: A_Error,\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ) {\n logger?.error(error);\n }\n\n}\n\n\n\n\n\n\n\n\n"]}
|
|
@@ -31,7 +31,7 @@ type A_SignalVector_Serialized = A_TYPES__Entity_Serialized & {
|
|
|
31
31
|
structure: string[];
|
|
32
32
|
values: Array<Record<string, any>>;
|
|
33
33
|
} & A_TYPES__Entity_Serialized;
|
|
34
|
-
type A_Signal_Init<T extends
|
|
34
|
+
type A_Signal_Init<T extends any = any> = {
|
|
35
35
|
/**
|
|
36
36
|
* Possible signal id
|
|
37
37
|
*
|
|
@@ -47,7 +47,7 @@ type A_Signal_Init<T extends Record<string, any> = Record<string, any>> = {
|
|
|
47
47
|
*/
|
|
48
48
|
data: T;
|
|
49
49
|
};
|
|
50
|
-
type A_Signal_Serialized<T extends
|
|
50
|
+
type A_Signal_Serialized<T extends any = any> = {
|
|
51
51
|
/**
|
|
52
52
|
* The signal data
|
|
53
53
|
*/
|
|
@@ -67,33 +67,11 @@ type A_Signal_Serialized<T extends Record<string, any> = Record<string, any>> =
|
|
|
67
67
|
* Signals are typically used in scenarios where the current state is more important than individual events,
|
|
68
68
|
* such as monitoring systems, real-time dashboards, or stateful applications.
|
|
69
69
|
*/
|
|
70
|
-
declare class A_Signal<_TSignalDataType extends
|
|
71
|
-
/**
|
|
72
|
-
* Allows to define default data for the signal.
|
|
73
|
-
*
|
|
74
|
-
* If no data is provided during initialization, the default data will be used.
|
|
75
|
-
*
|
|
76
|
-
* @returns
|
|
77
|
-
*/
|
|
78
|
-
static default(): Promise<A_Signal | undefined>;
|
|
70
|
+
declare class A_Signal<_TSignalDataType extends any = any, _TSignalSerializedDataType extends any = _TSignalDataType> extends A_Entity<A_Signal_Init<_TSignalDataType>, A_Signal_Serialized<_TSignalSerializedDataType>> {
|
|
79
71
|
/**
|
|
80
72
|
* The actual data carried by the signal.
|
|
81
73
|
*/
|
|
82
74
|
data: _TSignalDataType;
|
|
83
|
-
/**
|
|
84
|
-
* Generates signal hash uses for comparison
|
|
85
|
-
*
|
|
86
|
-
* @param str
|
|
87
|
-
*/
|
|
88
|
-
protected createHash(str?: string): string;
|
|
89
|
-
protected createHash(str?: undefined): string;
|
|
90
|
-
protected createHash(str?: Record<string, any>): string;
|
|
91
|
-
protected createHash(str?: Array<any>): string;
|
|
92
|
-
protected createHash(str?: number): string;
|
|
93
|
-
protected createHash(str?: boolean): string;
|
|
94
|
-
protected createHash(str?: null): string;
|
|
95
|
-
protected createHash(map?: Map<any, any>): string;
|
|
96
|
-
protected createHash(set?: Set<any>): string;
|
|
97
75
|
/**
|
|
98
76
|
* This method compares the current signal with another signal instance by deduplication ID
|
|
99
77
|
* this id can be configured during initialization with the "id" property.
|
|
@@ -108,9 +86,27 @@ declare class A_Signal<_TSignalDataType extends Record<string, any> = Record<str
|
|
|
108
86
|
* @returns
|
|
109
87
|
*/
|
|
110
88
|
compare(other: A_Signal<_TSignalDataType>): boolean;
|
|
111
|
-
|
|
89
|
+
/**
|
|
90
|
+
* Allows to define default data for the signal.
|
|
91
|
+
*
|
|
92
|
+
* If no data is provided during initialization, the default data will be used.
|
|
93
|
+
*
|
|
94
|
+
* @returns
|
|
95
|
+
*/
|
|
96
|
+
fromUndefined(): void;
|
|
97
|
+
/**
|
|
98
|
+
* Allows to initialize the signal from a new signal entity. This is useful for example when we want to create a new instance of the signal entity with the same data as another instance, but with a different ASEID.
|
|
99
|
+
*
|
|
100
|
+
* @param newEntity
|
|
101
|
+
*/
|
|
112
102
|
fromNew(newEntity: A_Signal_Init<_TSignalDataType>): void;
|
|
113
|
-
|
|
103
|
+
/**
|
|
104
|
+
* Allows to initialize the signal from a serialized version of the signal. This is useful for example when we receive a signal from the server and we want to create an instance of the signal entity from the received data.
|
|
105
|
+
*
|
|
106
|
+
* @param serializedEntity
|
|
107
|
+
*/
|
|
108
|
+
fromJSON(serializedEntity: A_Signal_Serialized<_TSignalSerializedDataType>): void;
|
|
109
|
+
toJSON(): A_Signal_Serialized<_TSignalSerializedDataType>;
|
|
114
110
|
}
|
|
115
111
|
|
|
116
112
|
/**
|
|
@@ -158,14 +154,39 @@ declare class A_SignalVector<TSignals extends A_Signal[] = A_Signal[]> extends A
|
|
|
158
154
|
* @returns
|
|
159
155
|
*/
|
|
160
156
|
[Symbol.iterator](): Iterator<TSignals[number]>;
|
|
157
|
+
/**
|
|
158
|
+
* Checks that 2 vectors are identical by types and data
|
|
159
|
+
*
|
|
160
|
+
* e.g. [UserSignInSignal, UserStatusSignal] is equal to [UserSignInSignal, UserStatusSignal] with the same data,
|
|
161
|
+
* but not equal to [UserStatusSignal, UserSignInSignal] or [UserSignInSignal, UserStatusSignal] with different data.
|
|
162
|
+
*
|
|
163
|
+
* @param other
|
|
164
|
+
* @returns
|
|
165
|
+
*/
|
|
166
|
+
equals(other: A_SignalVector<TSignals>): boolean;
|
|
161
167
|
/**
|
|
162
168
|
* Allows to match the current Signal Vector with another Signal Vector by comparing each signal in the structure.
|
|
163
|
-
* This method returns true if all signals in the vector match the corresponding signals in
|
|
169
|
+
* This method returns true if all signals in the vector A match the corresponding signals in vector B, and false otherwise.
|
|
170
|
+
*
|
|
171
|
+
*
|
|
172
|
+
* e.g. [UserSignInSignal, UserStatusSignal] matches [UserStatusSignal, UserSignInSignal] with the same data,
|
|
173
|
+
*
|
|
174
|
+
* but not matches [UserSignInSignal, UserStatusSignal] with different data or [UserSignInSignal] or [UserSignInSignal, UserStatusSignal, UserActivitySignal].
|
|
175
|
+
*
|
|
164
176
|
*
|
|
165
177
|
* @param other
|
|
166
178
|
* @returns
|
|
167
179
|
*/
|
|
168
180
|
match(other: A_SignalVector<TSignals>): boolean;
|
|
181
|
+
/**
|
|
182
|
+
* Checks if the current Signal Vector includes all signals from another Signal Vector, regardless of order.
|
|
183
|
+
*
|
|
184
|
+
* e.g. [UserSignInSignal, UserStatusSignal] includes [UserStatusSignal] with the same data,
|
|
185
|
+
* but not includes [UserStatusSignal] with different data or [UserActivitySignal].
|
|
186
|
+
*
|
|
187
|
+
* @param other
|
|
188
|
+
*/
|
|
189
|
+
includes(other: A_SignalVector<TSignals>): boolean;
|
|
169
190
|
/**
|
|
170
191
|
* This method should ensure that the current Signal Vector contains all signals from the provided Signal Vector.
|
|
171
192
|
*
|
|
@@ -193,7 +214,7 @@ declare class A_SignalVector<TSignals extends A_Signal[] = A_Signal[]> extends A
|
|
|
193
214
|
* @param structure - Optional structure to override the default ordering
|
|
194
215
|
* @returns Array of signal instances in the specified order
|
|
195
216
|
*/
|
|
196
|
-
toVector<T extends Array<A_Signal> = TSignals>(structure?: A_Signal_TSignalsConstructors<T>):
|
|
217
|
+
toVector<T extends Array<A_Signal> = TSignals>(structure?: A_Signal_TSignalsConstructors<T>): T;
|
|
197
218
|
/**
|
|
198
219
|
* Converts to Array of data of signals in the vector
|
|
199
220
|
* Maintains the order specified in the structure/generic type
|
|
@@ -201,7 +222,7 @@ declare class A_SignalVector<TSignals extends A_Signal[] = A_Signal[]> extends A
|
|
|
201
222
|
* @param structure - Optional structure to override the default ordering
|
|
202
223
|
* @returns Array of serialized signal data in the specified order
|
|
203
224
|
*/
|
|
204
|
-
toDataVector<T extends A_Signal[] = TSignals>(structure?: A_Signal_TSignalsConstructors<T>):
|
|
225
|
+
toDataVector<T extends A_Signal[] = TSignals>(structure?: A_Signal_TSignalsConstructors<T>): A_SignalTValueArray<T>;
|
|
205
226
|
/**
|
|
206
227
|
* Converts to Object with signal constructor names as keys and their corresponding data values
|
|
207
228
|
* Uses the structure ordering to ensure consistent key ordering
|
|
@@ -1,67 +1,13 @@
|
|
|
1
|
+
import { A_UtilsHelper } from './chunk-S2RSPZXR.mjs';
|
|
1
2
|
import { A_Logger } from './chunk-TK5UEYMZ.mjs';
|
|
2
3
|
import { A_Config } from './chunk-ECSGFDRQ.mjs';
|
|
3
4
|
import './chunk-J6CLHXFQ.mjs';
|
|
4
5
|
import './chunk-TQ5UON22.mjs';
|
|
5
6
|
import { __decorateClass, __decorateParam } from './chunk-EQQGB2QZ.mjs';
|
|
6
|
-
import { A_Feature, A_Inject, A_Error, A_Scope, A_Dependency, A_Entity, A_Fragment, A_Context, A_CommonHelper, A_Component } from '@adaas/a-concept';
|
|
7
|
+
import { A_Feature, A_Inject, A_Error, A_Scope, A_Dependency, A_Entity, A_TypeGuards, A_Fragment, A_Context, A_CommonHelper, A_Component } from '@adaas/a-concept';
|
|
7
8
|
import { A_Frame } from '@adaas/a-frame';
|
|
8
9
|
|
|
9
10
|
var A_Signal = class extends A_Entity {
|
|
10
|
-
// ========================================================================
|
|
11
|
-
// ========================== Static Methods ==============================
|
|
12
|
-
// ========================================================================
|
|
13
|
-
/**
|
|
14
|
-
* Allows to define default data for the signal.
|
|
15
|
-
*
|
|
16
|
-
* If no data is provided during initialization, the default data will be used.
|
|
17
|
-
*
|
|
18
|
-
* @returns
|
|
19
|
-
*/
|
|
20
|
-
static async default() {
|
|
21
|
-
return void 0;
|
|
22
|
-
}
|
|
23
|
-
createHash(str) {
|
|
24
|
-
let hashSource;
|
|
25
|
-
if (str instanceof Map) {
|
|
26
|
-
hashSource = JSON.stringify(Array.from(str.entries()));
|
|
27
|
-
} else if (str instanceof Set) {
|
|
28
|
-
hashSource = JSON.stringify(Array.from(str.values()));
|
|
29
|
-
} else {
|
|
30
|
-
switch (typeof str) {
|
|
31
|
-
case "string":
|
|
32
|
-
hashSource = str;
|
|
33
|
-
break;
|
|
34
|
-
case "undefined":
|
|
35
|
-
hashSource = "undefined";
|
|
36
|
-
break;
|
|
37
|
-
case "object":
|
|
38
|
-
if ("toJSON" in str)
|
|
39
|
-
hashSource = JSON.stringify(str.toJSON());
|
|
40
|
-
else
|
|
41
|
-
hashSource = JSON.stringify(str);
|
|
42
|
-
break;
|
|
43
|
-
case "number":
|
|
44
|
-
hashSource = str.toString();
|
|
45
|
-
break;
|
|
46
|
-
case "boolean":
|
|
47
|
-
hashSource = str ? "true" : "false";
|
|
48
|
-
break;
|
|
49
|
-
case "function":
|
|
50
|
-
hashSource = str.toString();
|
|
51
|
-
break;
|
|
52
|
-
default:
|
|
53
|
-
hashSource = String(str);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
let hash = 0, i, chr;
|
|
57
|
-
for (i = 0; i < hashSource.length; i++) {
|
|
58
|
-
chr = hashSource.charCodeAt(i);
|
|
59
|
-
hash = (hash << 5) - hash + chr;
|
|
60
|
-
hash |= 0;
|
|
61
|
-
}
|
|
62
|
-
const hashString = hash.toString();
|
|
63
|
-
return hashString;
|
|
64
|
-
}
|
|
65
11
|
/**
|
|
66
12
|
* This method compares the current signal with another signal instance by deduplication ID
|
|
67
13
|
* this id can be configured during initialization with the "id" property.
|
|
@@ -81,22 +27,52 @@ var A_Signal = class extends A_Entity {
|
|
|
81
27
|
}
|
|
82
28
|
return true;
|
|
83
29
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Allows to define default data for the signal.
|
|
32
|
+
*
|
|
33
|
+
* If no data is provided during initialization, the default data will be used.
|
|
34
|
+
*
|
|
35
|
+
* @returns
|
|
36
|
+
*/
|
|
37
|
+
fromUndefined() {
|
|
38
|
+
const name = this.constructor.entity;
|
|
39
|
+
this.data = void 0;
|
|
40
|
+
const identity = {
|
|
41
|
+
name,
|
|
42
|
+
data: this.data
|
|
43
|
+
};
|
|
44
|
+
const id = A_UtilsHelper.hash(identity);
|
|
45
|
+
this.aseid = this.generateASEID({
|
|
46
|
+
entity: name,
|
|
47
|
+
id
|
|
48
|
+
});
|
|
87
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Allows to initialize the signal from a new signal entity. This is useful for example when we want to create a new instance of the signal entity with the same data as another instance, but with a different ASEID.
|
|
52
|
+
*
|
|
53
|
+
* @param newEntity
|
|
54
|
+
*/
|
|
88
55
|
fromNew(newEntity) {
|
|
89
56
|
this.data = newEntity.data;
|
|
90
57
|
const identity = newEntity.id || {
|
|
91
58
|
name: newEntity.name,
|
|
92
59
|
data: this.data
|
|
93
60
|
};
|
|
94
|
-
const id =
|
|
61
|
+
const id = A_UtilsHelper.hash(identity);
|
|
95
62
|
this.aseid = this.generateASEID({
|
|
96
63
|
entity: newEntity.name,
|
|
97
64
|
id
|
|
98
65
|
});
|
|
99
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Allows to initialize the signal from a serialized version of the signal. This is useful for example when we receive a signal from the server and we want to create an instance of the signal entity from the received data.
|
|
69
|
+
*
|
|
70
|
+
* @param serializedEntity
|
|
71
|
+
*/
|
|
72
|
+
fromJSON(serializedEntity) {
|
|
73
|
+
super.fromJSON(serializedEntity);
|
|
74
|
+
this.data = serializedEntity.data;
|
|
75
|
+
}
|
|
100
76
|
toJSON() {
|
|
101
77
|
return {
|
|
102
78
|
...super.toJSON(),
|
|
@@ -167,9 +143,51 @@ var A_SignalVector = class extends A_Entity {
|
|
|
167
143
|
}
|
|
168
144
|
};
|
|
169
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Checks that 2 vectors are identical by types and data
|
|
148
|
+
*
|
|
149
|
+
* e.g. [UserSignInSignal, UserStatusSignal] is equal to [UserSignInSignal, UserStatusSignal] with the same data,
|
|
150
|
+
* but not equal to [UserStatusSignal, UserSignInSignal] or [UserSignInSignal, UserStatusSignal] with different data.
|
|
151
|
+
*
|
|
152
|
+
* @param other
|
|
153
|
+
* @returns
|
|
154
|
+
*/
|
|
155
|
+
equals(other) {
|
|
156
|
+
if (this.structure.length !== other.structure.length) {
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
for (let i = 0; i < this.structure.length; i++) {
|
|
160
|
+
const thisSignalConstructor = this.structure[i];
|
|
161
|
+
const otherSignalConstructor = other.structure[i];
|
|
162
|
+
if (thisSignalConstructor !== otherSignalConstructor) {
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
const thisSignalIndex = this._signals.findIndex((s) => s.constructor === thisSignalConstructor);
|
|
166
|
+
const otherSignalIndex = other._signals.findIndex((s) => s.constructor === otherSignalConstructor);
|
|
167
|
+
if (thisSignalIndex !== otherSignalIndex) {
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
const thisSignal = thisSignalIndex !== -1 ? this._signals[thisSignalIndex] : void 0;
|
|
171
|
+
const otherSignal = otherSignalIndex !== -1 ? other._signals[otherSignalIndex] : void 0;
|
|
172
|
+
if (thisSignal && otherSignal) {
|
|
173
|
+
if (!thisSignal.compare(otherSignal)) {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
} else if (thisSignal || otherSignal) {
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return true;
|
|
181
|
+
}
|
|
170
182
|
/**
|
|
171
183
|
* Allows to match the current Signal Vector with another Signal Vector by comparing each signal in the structure.
|
|
172
|
-
* This method returns true if all signals in the vector match the corresponding signals in
|
|
184
|
+
* This method returns true if all signals in the vector A match the corresponding signals in vector B, and false otherwise.
|
|
185
|
+
*
|
|
186
|
+
*
|
|
187
|
+
* e.g. [UserSignInSignal, UserStatusSignal] matches [UserStatusSignal, UserSignInSignal] with the same data,
|
|
188
|
+
*
|
|
189
|
+
* but not matches [UserSignInSignal, UserStatusSignal] with different data or [UserSignInSignal] or [UserSignInSignal, UserStatusSignal, UserActivitySignal].
|
|
190
|
+
*
|
|
173
191
|
*
|
|
174
192
|
* @param other
|
|
175
193
|
* @returns
|
|
@@ -198,6 +216,23 @@ var A_SignalVector = class extends A_Entity {
|
|
|
198
216
|
}
|
|
199
217
|
return true;
|
|
200
218
|
}
|
|
219
|
+
/**
|
|
220
|
+
* Checks if the current Signal Vector includes all signals from another Signal Vector, regardless of order.
|
|
221
|
+
*
|
|
222
|
+
* e.g. [UserSignInSignal, UserStatusSignal] includes [UserStatusSignal] with the same data,
|
|
223
|
+
* but not includes [UserStatusSignal] with different data or [UserActivitySignal].
|
|
224
|
+
*
|
|
225
|
+
* @param other
|
|
226
|
+
*/
|
|
227
|
+
includes(other) {
|
|
228
|
+
for (const signalConstructor of other.structure) {
|
|
229
|
+
const signalIndex = this._signals.findIndex((s) => s.constructor === signalConstructor);
|
|
230
|
+
if (signalIndex === -1) {
|
|
231
|
+
return false;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return true;
|
|
235
|
+
}
|
|
201
236
|
/**
|
|
202
237
|
* This method should ensure that the current Signal Vector contains all signals from the provided Signal Vector.
|
|
203
238
|
*
|
|
@@ -214,7 +249,7 @@ var A_SignalVector = class extends A_Entity {
|
|
|
214
249
|
}
|
|
215
250
|
has(param1) {
|
|
216
251
|
let signalConstructor;
|
|
217
|
-
if (param1
|
|
252
|
+
if (A_TypeGuards.isEntityInstance(param1)) {
|
|
218
253
|
signalConstructor = param1.constructor;
|
|
219
254
|
} else {
|
|
220
255
|
signalConstructor = param1;
|
|
@@ -241,7 +276,7 @@ var A_SignalVector = class extends A_Entity {
|
|
|
241
276
|
* @param structure - Optional structure to override the default ordering
|
|
242
277
|
* @returns Array of signal instances in the specified order
|
|
243
278
|
*/
|
|
244
|
-
|
|
279
|
+
toVector(structure) {
|
|
245
280
|
const usedStructure = structure || this.structure;
|
|
246
281
|
return usedStructure.map((signalConstructor) => {
|
|
247
282
|
const signalIndex = this._signals.findIndex((s) => s.constructor === signalConstructor);
|
|
@@ -255,14 +290,14 @@ var A_SignalVector = class extends A_Entity {
|
|
|
255
290
|
* @param structure - Optional structure to override the default ordering
|
|
256
291
|
* @returns Array of serialized signal data in the specified order
|
|
257
292
|
*/
|
|
258
|
-
|
|
293
|
+
toDataVector(structure) {
|
|
259
294
|
const usedStructure = structure || this.structure;
|
|
260
295
|
const results = [];
|
|
261
296
|
for (const signalConstructor of usedStructure) {
|
|
262
297
|
const signalIndex = this._signals.findIndex((s) => s.constructor === signalConstructor);
|
|
263
298
|
let data;
|
|
264
299
|
if (signalIndex === -1) {
|
|
265
|
-
data =
|
|
300
|
+
data = new signalConstructor();
|
|
266
301
|
} else {
|
|
267
302
|
const signal = this._signals[signalIndex];
|
|
268
303
|
data = signal;
|