@nsshunt/stsappframework 3.1.209 → 3.1.210

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.
Files changed (81) hide show
  1. package/build.sh +5 -0
  2. package/dist/index.js +0 -5
  3. package/dist/index.js.map +1 -1
  4. package/dist/masterprocessbase.js +3 -53
  5. package/dist/masterprocessbase.js.map +1 -1
  6. package/dist/processbase.js +4 -17
  7. package/dist/processbase.js.map +1 -1
  8. package/dist/testing/app.js +0 -457
  9. package/dist/testing/app.js.map +1 -1
  10. package/dist/workerprocessbase.js +1 -36
  11. package/dist/workerprocessbase.js.map +1 -1
  12. package/package.json +14 -13
  13. package/src/commonTypes.ts +2 -2
  14. package/src/index.ts +0 -5
  15. package/src/masterprocessbase.ts +4 -18
  16. package/src/processbase.ts +7 -22
  17. package/src/testing/app.ts +1 -530
  18. package/src/workerprocessbase.ts +1 -40
  19. package/types/commonTypes.d.ts +0 -2
  20. package/types/commonTypes.d.ts.map +1 -1
  21. package/types/index.d.ts +0 -5
  22. package/types/index.d.ts.map +1 -1
  23. package/types/masterprocessbase.d.ts.map +1 -1
  24. package/types/processbase.d.ts +0 -2
  25. package/types/processbase.d.ts.map +1 -1
  26. package/types/workerprocessbase.d.ts.map +1 -1
  27. package/dist/ipcMessageHandler.js +0 -189
  28. package/dist/ipcMessageHandler.js.map +0 -1
  29. package/dist/ipcMessageManager.js +0 -146
  30. package/dist/ipcMessageManager.js.map +0 -1
  31. package/dist/ipcMessageProcessorPrimary.js +0 -65
  32. package/dist/ipcMessageProcessorPrimary.js.map +0 -1
  33. package/dist/ipcMessageProcessorWorker.js +0 -61
  34. package/dist/ipcMessageProcessorWorker.js.map +0 -1
  35. package/dist/messagehandling/webWorkerMessageHandler.js +0 -280
  36. package/dist/messagehandling/webWorkerMessageHandler.js.map +0 -1
  37. package/dist/messagehandling/webWorkerSupport.js +0 -62
  38. package/dist/messagehandling/webWorkerSupport.js.map +0 -1
  39. package/dist/redisMessageHandler.js +0 -305
  40. package/dist/redisMessageHandler.js.map +0 -1
  41. package/dist/redisMessageHandler.test.js +0 -129
  42. package/dist/redisMessageHandler.test.js.map +0 -1
  43. package/dist/testing/app_ipc_legacy.js +0 -84
  44. package/dist/testing/app_ipc_legacy.js.map +0 -1
  45. package/dist/testing/app_ipcex.js +0 -69
  46. package/dist/testing/app_ipcex.js.map +0 -1
  47. package/dist/testing/app_ww.js +0 -54
  48. package/dist/testing/app_ww.js.map +0 -1
  49. package/src/ipcMessageHandler.ts +0 -201
  50. package/src/ipcMessageManager.ts +0 -171
  51. package/src/ipcMessageProcessorPrimary.ts +0 -76
  52. package/src/ipcMessageProcessorWorker.ts +0 -70
  53. package/src/messagehandling/webWorkerMessageHandler.ts +0 -341
  54. package/src/messagehandling/webWorkerSupport.ts +0 -66
  55. package/src/redisMessageHandler.test.ts +0 -157
  56. package/src/redisMessageHandler.ts +0 -371
  57. package/src/testing/app_ipc_legacy.ts +0 -87
  58. package/src/testing/app_ipcex.ts +0 -68
  59. package/src/testing/app_ww.ts +0 -68
  60. package/types/ipcMessageHandler.d.ts +0 -30
  61. package/types/ipcMessageHandler.d.ts.map +0 -1
  62. package/types/ipcMessageManager.d.ts +0 -30
  63. package/types/ipcMessageManager.d.ts.map +0 -1
  64. package/types/ipcMessageProcessorPrimary.d.ts +0 -26
  65. package/types/ipcMessageProcessorPrimary.d.ts.map +0 -1
  66. package/types/ipcMessageProcessorWorker.d.ts +0 -25
  67. package/types/ipcMessageProcessorWorker.d.ts.map +0 -1
  68. package/types/messagehandling/webWorkerMessageHandler.d.ts +0 -52
  69. package/types/messagehandling/webWorkerMessageHandler.d.ts.map +0 -1
  70. package/types/messagehandling/webWorkerSupport.d.ts +0 -6
  71. package/types/messagehandling/webWorkerSupport.d.ts.map +0 -1
  72. package/types/redisMessageHandler.d.ts +0 -51
  73. package/types/redisMessageHandler.d.ts.map +0 -1
  74. package/types/redisMessageHandler.test.d.ts +0 -2
  75. package/types/redisMessageHandler.test.d.ts.map +0 -1
  76. package/types/testing/app_ipc_legacy.d.ts +0 -2
  77. package/types/testing/app_ipc_legacy.d.ts.map +0 -1
  78. package/types/testing/app_ipcex.d.ts +0 -2
  79. package/types/testing/app_ipcex.d.ts.map +0 -1
  80. package/types/testing/app_ww.d.ts +0 -2
  81. package/types/testing/app_ww.d.ts.map +0 -1
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IPCMessageProcessorWorker = void 0;
4
- /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
5
- const stsutils_1 = require("@nsshunt/stsutils");
6
- const ipcMessageManager_1 = require("./ipcMessageManager");
7
- /**
8
- * IPC Message Handling.
9
- *
10
- * This class can be used to support messages between cluster.primary and cluster.worker instances using IPC.
11
- * This class can be used for finer control for processing messages between the cluster primary and cluster workers.
12
- * Use the ipcMessageHandler for a simpler implementation.
13
- * This class is used for the cluster worker threads only.
14
- * Note: Currently groups handling is not supported. Use the redis version for this capability.
15
- */
16
- class IPCMessageProcessorWorker {
17
- #ipcMessageManager;
18
- constructor(classOptions) {
19
- const ipcMessageManagerOptions = {
20
- logger: stsutils_1.defaultLogger,
21
- requestResponseMessageTimeout: classOptions.requestResponseMessageTimeout,
22
- namespace: classOptions.namespace,
23
- role: 'CLIENT',
24
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
25
- messageSender: (payload, options) => {
26
- // Options not required for sending payloads to the master process
27
- process.send(payload);
28
- },
29
- ProcessRequestMessage: async (payload, options) => {
30
- if (classOptions.processPayload) {
31
- return classOptions.processPayload(payload, options);
32
- }
33
- else {
34
- return {};
35
- }
36
- },
37
- messageReceiverStart: (options) => {
38
- // Receive a message response back from the primary thread
39
- process.on('message', (payload) => {
40
- this.#ipcMessageManager.ProcessMessage(payload, options);
41
- });
42
- },
43
- messageReceiverStop: (options) => {
44
- process.off('message', (payload) => this.#ipcMessageManager.ProcessMessage(payload, options));
45
- },
46
- groups: []
47
- };
48
- this.#ipcMessageManager = new ipcMessageManager_1.IPCMessageManager(ipcMessageManagerOptions);
49
- }
50
- SendMessage = async (payload) => {
51
- return this.#ipcMessageManager.SendMessage(payload, {});
52
- };
53
- Start = () => {
54
- this.#ipcMessageManager.Start({});
55
- };
56
- Stop = () => {
57
- this.#ipcMessageManager.Stop({});
58
- };
59
- }
60
- exports.IPCMessageProcessorWorker = IPCMessageProcessorWorker;
61
- //# sourceMappingURL=ipcMessageProcessorWorker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ipcMessageProcessorWorker.js","sourceRoot":"","sources":["../src/ipcMessageProcessorWorker.ts"],"names":[],"mappings":";;;AAAA,kDAAkD,CAAE,UAAU;AAC9D,gDAAyE;AAIzE,2DAAiF;AASjF;;;;;;;;GAQG;AACH,MAAa,yBAAyB;IAClC,kBAAkB,CAAoB;IAEtC,YAAY,YAAwC;QAChD,MAAM,wBAAwB,GAA6B;YACvD,MAAM,EAAE,wBAAa;YACrB,6BAA6B,EAAE,YAAY,CAAC,6BAA6B;YACzE,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,IAAI,EAAE,QAAQ;YACd,8DAA8D;YAC9D,aAAa,EAAE,CAAC,OAAuC,EAAE,OAAY,EAAE,EAAE;gBACrE,kEAAkE;gBACjE,OAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;YACD,qBAAqB,EAAE,KAAK,EAAE,OAAuC,EAAE,OAAY,EAAuB,EAAE;gBACxG,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;oBAC9B,OAAO,YAAY,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACJ,OAAO,EAAG,CAAC;gBACf,CAAC;YACL,CAAC;YACD,oBAAoB,EAAE,CAAC,OAAY,EAAE,EAAE;gBACnC,0DAA0D;gBAC1D,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;oBAC9B,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC7D,CAAC,CAAC,CAAC;YACP,CAAC;YACD,mBAAmB,EAAE,CAAC,OAAY,EAAE,EAAE;gBAClC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAClG,CAAC;YACD,MAAM,EAAE,EAAG;SACd,CAAA;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,qCAAiB,CAAC,wBAAwB,CAAC,CAAC;IAC9E,CAAC;IAED,WAAW,GAAG,KAAK,EAAE,OAAmB,EAAuB,EAAE;QAC7D,OAAO,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,OAAO,EAAE,EAAG,CAAC,CAAC;IAC7D,CAAC,CAAA;IAED,KAAK,GAAG,GAAG,EAAE;QACT,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAG,CAAC,CAAC;IACvC,CAAC,CAAA;IAED,IAAI,GAAG,GAAG,EAAE;QACR,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAG,CAAC,CAAC;IACtC,CAAC,CAAA;CACJ;AA9CD,8DA8CC"}
@@ -1,280 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.WebWorkerMessageHandler = void 0;
7
- /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF */ // --> OFF
8
- const tiny_emitter_1 = require("tiny-emitter");
9
- const ipcMessageManager_1 = require("../ipcMessageManager");
10
- const chalk_1 = __importDefault(require("chalk"));
11
- class WebWorkerMessageHandler extends tiny_emitter_1.TinyEmitter {
12
- #ipcMessageManager = null;
13
- #options;
14
- #events = {};
15
- #clients = {};
16
- #pingTimeout = null;
17
- #messagePort;
18
- constructor(options) {
19
- super();
20
- this.#options = options;
21
- this.#messagePort = options.messagePort;
22
- this.SetupPrimary();
23
- if (this.#options.role.localeCompare('CLIENT') === 0) {
24
- const ping = () => {
25
- this.#pingTimeout = setTimeout(() => {
26
- const pingData = {
27
- id: this.#ipcMessageManager.id,
28
- groups: this.#options.groups,
29
- };
30
- if (this.#options.processOptions) {
31
- pingData.serviceProcessContext = this.#options.processOptions.serviceProcessContext;
32
- }
33
- this.emit('ping', pingData, (response) => { });
34
- ping();
35
- }, 1000).unref();
36
- };
37
- ping();
38
- }
39
- else {
40
- this.on('ping', (pingData, callback) => {
41
- const { id, groups, serviceProcessContext } = pingData;
42
- if (this.#clients[id]) {
43
- clearTimeout(this.#clients[id].timeout);
44
- this.#clients[id].pingCount++;
45
- this.#clients[id].timeout = setTimeout(() => {
46
- delete this.#clients[id];
47
- }, 2000);
48
- this.#clients[id].groups = groups;
49
- this.#clients[id].serviceProcessContext = serviceProcessContext;
50
- }
51
- else {
52
- this.#clients[id] = {
53
- id,
54
- clientConnected: new Date(),
55
- pingCount: 0,
56
- timeout: setTimeout(() => {
57
- delete this.#clients[id];
58
- }, 2000),
59
- groups,
60
- serviceProcessContext
61
- };
62
- }
63
- callback('ok');
64
- });
65
- }
66
- }
67
- #processRawMessage = (rawmessage) => {
68
- const message = JSON.parse(rawmessage);
69
- this.#ipcMessageManager?.ProcessMessage(message, {});
70
- };
71
- get clients() {
72
- return this.#clients;
73
- }
74
- get groups() {
75
- return this.#options.groups;
76
- }
77
- AddGroup = (group) => {
78
- const index = this.#options.groups.indexOf(group);
79
- if (index === -1) {
80
- this.#options.groups.push(group);
81
- }
82
- };
83
- RemoveGroup = (group) => {
84
- const removeIndex = this.#options.groups.indexOf(group);
85
- if (removeIndex !== -1) {
86
- this.#options.groups.splice(removeIndex, 1);
87
- }
88
- };
89
- SetupPrimary = () => {
90
- const ipcMessageManagerOptions = {
91
- logger: this.#options.logger,
92
- requestResponseMessageTimeout: 5000,
93
- namespace: this.#options.namespace,
94
- role: this.#options.role,
95
- messageSender: this.#messageSender,
96
- groups: this.#options.groups,
97
- // This method is used to calculate if all responses have been received from multiple clients (broadcast)
98
- // returns true/false.
99
- ProcessResponseMessage: this.#ProcessResponseMessage,
100
- // This gets called when an event is received from a message receiver (when ProcessMessage is invoked from the receiver event handler)
101
- ProcessRequestMessage: this.#processPayload,
102
- messageReceiverStart: (options) => {
103
- this.#messagePort.on('message', this.#processRawMessage);
104
- //this.#redisSubscriber.on("message", this.#processRawMessage);
105
- },
106
- messageReceiverStop: (options) => {
107
- this.#messagePort.off("message", this.#processRawMessage);
108
- //this.#redisSubscriber.off("message", this.#processRawMessage);
109
- }
110
- };
111
- this.#ipcMessageManager = new ipcMessageManager_1.IPCMessageManager(ipcMessageManagerOptions);
112
- };
113
- #messageSender = (payload, options) => {
114
- if (payload.messageType.localeCompare('REQUEST') === 0) {
115
- //this.#redisPublisher.publish(this.#requestChannel, JSON.stringify(payload));
116
- this.#messagePort.postMessage(JSON.stringify(payload));
117
- }
118
- else if (payload.messageType.localeCompare('RESPONSE') === 0) {
119
- this.#messagePort.postMessage(JSON.stringify(payload));
120
- //this.#redisPublisher.publish(this.#responseChannel, JSON.stringify(payload));
121
- }
122
- };
123
- #ProcessResponseMessage = async (responses, options) => {
124
- // Now check if we have all responses ...
125
- let allFound = false;
126
- for (const [responseId, response] of Object.entries(responses)) {
127
- if (response.senderRole.localeCompare('CLIENT') === 0) {
128
- allFound = true;
129
- break;
130
- }
131
- }
132
- if (allFound) {
133
- return allFound;
134
- }
135
- let found = true;
136
- // Sender role here is SERVER
137
- let requestGroup = null;
138
- for (const [responseId, response] of Object.entries(responses)) {
139
- if (response.requestPayload.args.length > 0 && response.requestPayload.args[0].group) {
140
- requestGroup = response.requestPayload.args[0].group;
141
- break;
142
- }
143
- }
144
- if (requestGroup) {
145
- const clientsInGroup = Object.values(this.#clients).filter(c => {
146
- if (c.groups.indexOf(requestGroup) === -1) {
147
- return false;
148
- }
149
- return true;
150
- });
151
- // Now make sure that all clients are in the responses
152
- found = true;
153
- clientsInGroup.forEach(c => {
154
- if (!responses[c.id]) {
155
- found = false;
156
- }
157
- });
158
- }
159
- else {
160
- const clientsInGroup = Object.values(this.#clients);
161
- // Now make sure that all clients are in the responses
162
- found = true;
163
- clientsInGroup.forEach(c => {
164
- if (!responses[c.id]) {
165
- found = false;
166
- }
167
- });
168
- }
169
- return found;
170
- };
171
- #processPayload = (payload, options) => {
172
- // check the event name from the collection and invoke that function
173
- return new Promise((resolve, reject) => {
174
- if (payload.messageType.localeCompare('REQUEST') === 0) {
175
- if (payload.requestPayload['__eventName']) {
176
- const eventName = payload.requestPayload['__eventName'];
177
- // Only process events that I have registered interest in (using .on)
178
- if (this.#events[eventName]) {
179
- try {
180
- //const retVal = this.#events[eventName].callback(payload.requestPayload.args, payload, options, this.#events[eventName].ctx);
181
- this.#events[eventName].callback(...payload.requestPayload.args, (responseMessage) => {
182
- resolve(responseMessage);
183
- });
184
- }
185
- catch (error) {
186
- reject(error);
187
- }
188
- }
189
- }
190
- }
191
- });
192
- };
193
- // p.on('fromworker', (arg1: number, arg2: string, callback: any) => {
194
- on(event, callback, ctx) {
195
- if (this.#events[event]) {
196
- // Update the event with the same name
197
- delete this.#events[event];
198
- }
199
- const eventObject = {
200
- event,
201
- callback,
202
- ctx
203
- };
204
- this.#events[eventObject.event] = eventObject;
205
- return this;
206
- }
207
- off(event, callback) {
208
- if (this.#events[event]) {
209
- delete this.#events[event];
210
- }
211
- return this;
212
- }
213
- Start = () => {
214
- this.#ipcMessageManager?.Start();
215
- };
216
- Stop = () => {
217
- if (this.#pingTimeout) {
218
- clearTimeout(this.#pingTimeout);
219
- this.#pingTimeout = null;
220
- }
221
- this.#ipcMessageManager?.Stop();
222
- /*
223
- this.#redisSubscriber.quit();
224
- this.#redisSubscriber.disconnect();
225
-
226
- this.#redisPublisher.quit();
227
- this.#redisPublisher.disconnect();
228
- */
229
- };
230
- emit(event, ...args) {
231
- (async () => {
232
- try {
233
- const retVal = await this.#ipcMessageManager?.SendMessage({
234
- __eventName: event,
235
- args: args.slice(0, args.length - 1)
236
- });
237
- // Invoke the response callback
238
- args[args.length - 1](retVal);
239
- }
240
- catch (error) {
241
- if (this.#options.ignoreEvents) {
242
- if (this.#options.ignoreEvents.indexOf(error.__eventName) !== -1) {
243
- return;
244
- }
245
- }
246
- this.#options.logger.error(chalk_1.default.red(`RedisMessageHandler:emit(): Error: [${JSON.stringify(error)}]`));
247
- }
248
- })();
249
- return this;
250
- }
251
- emitWithError(event, args, responseCb, errorCb) {
252
- (async () => {
253
- try {
254
- const retVal = await this.#ipcMessageManager?.SendMessage({
255
- __eventName: event,
256
- args: [args]
257
- });
258
- // Invoke the response callback
259
- responseCb(retVal);
260
- }
261
- catch (error) {
262
- if (this.#options.ignoreEvents) {
263
- if (this.#options.ignoreEvents.indexOf(error.__eventName) !== -1) {
264
- return;
265
- }
266
- }
267
- errorCb(error);
268
- }
269
- })();
270
- return this;
271
- }
272
- emitex = async (event, ...args) => {
273
- return this.#ipcMessageManager.SendMessage({
274
- __eventName: event,
275
- args
276
- });
277
- };
278
- }
279
- exports.WebWorkerMessageHandler = WebWorkerMessageHandler;
280
- //# sourceMappingURL=webWorkerMessageHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webWorkerMessageHandler.js","sourceRoot":"","sources":["../../src/messagehandling/webWorkerMessageHandler.ts"],"names":[],"mappings":";;;;;;AAAA,wFAAwF,CAAE,yBAAyB;AACnH,+CAA2C;AAK3C,4DAAkF;AAElF,kDAA0B;AAwC1B,MAAa,uBAAwB,SAAQ,0BAAW;IACpD,kBAAkB,GAA6B,IAAI,CAAC;IACpD,QAAQ,CAAkC;IAC1C,OAAO,GAAiC,EAAG,CAAC;IAC5C,QAAQ,GAAkC,EAAG,CAAC;IAC9C,YAAY,GAA0B,IAAI,CAAC;IAC3C,YAAY,CAAc;IAE1B,YAAY,OAAwC;QAChD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;QAExC,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,GAAG,EAAE;gBACd,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;oBAChC,MAAM,QAAQ,GAAc;wBACxB,EAAE,EAAG,IAAI,CAAC,kBAAwC,CAAC,EAAE;wBACrD,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;qBAC/B,CAAA;oBACD,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;wBAC/B,QAAQ,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC;oBACxF,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,QAAa,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;oBACpD,IAAI,EAAE,CAAC;gBACX,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC,CAAA;YACD,IAAI,EAAE,CAAC;QACX,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,QAAmB,EAAE,QAAa,EAAE,EAAE;gBACnD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,QAAQ,CAAC;gBACvD,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBACpB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;oBACxC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;oBAC9B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;wBACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC7B,CAAC,EAAE,IAAI,CAAC,CAAC;oBACT,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;oBAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;gBACpE,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG;wBAChB,EAAE;wBACF,eAAe,EAAE,IAAI,IAAI,EAAE;wBAC3B,SAAS,EAAE,CAAC;wBACZ,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE;4BACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;wBAC7B,CAAC,EAAE,IAAI,CAAC;wBACR,MAAM;wBACN,qBAAqB;qBACxB,CAAA;gBACL,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,kBAAkB,GAAG,CAAC,UAAkB,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,OAAO,EAAE,EAAG,CAAC,CAAC;IAC1D,CAAC,CAAA;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;IACL,CAAC,CAAA;IAED,WAAW,GAAG,CAAC,KAAa,EAAE,EAAE;QAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;IACL,CAAC,CAAA;IAED,YAAY,GAAG,GAAG,EAAE;QAChB,MAAM,wBAAwB,GAA6B;YACvD,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;YAC5B,6BAA6B,EAAE,IAAI;YACnC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;YAClC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YACxB,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;YAC5B,yGAAyG;YACzG,sBAAsB;YACtB,sBAAsB,EAAE,IAAI,CAAC,uBAAuB;YACpD,sIAAsI;YACtI,qBAAqB,EAAE,IAAI,CAAC,eAAe;YAE3C,oBAAoB,EAAE,CAAC,OAAY,EAAE,EAAE;gBACnC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACzD,+DAA+D;YACnE,CAAC;YAED,mBAAmB,EAAE,CAAC,OAAY,EAAE,EAAE;gBAClC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC1D,gEAAgE;YACpE,CAAC;SACJ,CAAA;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,qCAAiB,CAAC,wBAAwB,CAAC,CAAC;IAC9E,CAAC,CAAA;IAGD,cAAc,GAAG,CAAC,OAAuC,EAAE,OAAY,EAAE,EAAE;QACvE,IAAI,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,8EAA8E;YAC9E,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACvD,+EAA+E;QACnF,CAAC;IACL,CAAC,CAAA;IAGD,uBAAuB,GAAG,KAAK,EAAE,SAAyD,EAAE,OAAY,EAAoB,EAAE;QAC1H,yCAAyC;QACzC,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7D,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpD,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM;YACV,CAAC;QACL,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,6BAA6B;QAC7B,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7D,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;gBACnF,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBACrD,MAAM;YACV,CAAC;QACL,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAC3D,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBACxC,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,sDAAsD;YACtD,KAAK,GAAG,IAAI,CAAC;YACb,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACvB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;oBACnB,KAAK,GAAG,KAAK,CAAC;gBAClB,CAAC;YACL,CAAC,CAAC,CAAA;QACN,CAAC;aAAM,CAAC;YACJ,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAEnD,sDAAsD;YACtD,KAAK,GAAG,IAAI,CAAC;YACb,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACvB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;oBACnB,KAAK,GAAG,KAAK,CAAC;gBAClB,CAAC;YACL,CAAC,CAAC,CAAA;QACN,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC,CAAA;IAED,eAAe,GAAG,CAAC,OAAuC,EAAE,OAAY,EAAuB,EAAE;QAC7F,oEAAoE;QACpE,OAAO,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/C,IAAI,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrD,IAAI,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;oBACxC,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;oBACxD,qEAAqE;oBACrE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC1B,IAAI,CAAC;4BACD,8HAA8H;4BAC9H,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,eAAoB,EAAE,EAAE;gCACtF,OAAO,CAAC,eAAe,CAAC,CAAC;4BAC7B,CAAC,CAAC,CAAC;wBACP,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACb,MAAM,CAAC,KAAK,CAAC,CAAC;wBAClB,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAA;IAED,sEAAsE;IAC7D,EAAE,CAAC,KAAa,EAAE,QAAa,EAAE,GAAS;QAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,sCAAsC;YACtC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,WAAW,GAAiB;YAC9B,KAAK;YACL,QAAQ;YACR,GAAG;SACN,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;QAC9C,OAAO,IAAI,CAAC;IAChB,CAAC;IAEQ,GAAG,CAAC,KAAa,EAAE,QAAc;QACtC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,GAAG,GAAG,EAAE;QACT,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC,CAAA;IAED,IAAI,GAAG,GAAG,EAAE;QACR,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;QAEhC;;;;;;UAME;IACN,CAAC,CAAA;IAEQ,IAAI,CAAC,KAAa,EAAE,GAAG,IAAW;QACvC,CAAC,KAAK,IAAI,EAAE;YACR,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC;oBACtD,WAAW,EAAE,KAAK;oBAClB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC;iBACpB,CAAC,CAAC;gBACpB,+BAA+B;gBAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;oBAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAE,KAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;wBACxE,OAAO;oBACX,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3G,CAAC;QACL,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,KAAa,EAAE,IAAgB,EAAE,UAAsD,EAAE,OAA6B;QAChI,CAAC,KAAK,IAAI,EAAE;YACR,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC;oBACtD,WAAW,EAAE,KAAK;oBAClB,IAAI,EAAE,CAAE,IAAI,CAAE;iBACA,CAAC,CAAC;gBACpB,+BAA+B;gBAC/B,UAAU,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;oBAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAE,KAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;wBACxE,OAAO;oBACX,CAAC;gBACL,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;QACL,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,GAAG,KAAK,EAAC,KAAa,EAAE,GAAG,IAAW,EAAuB,EAAE;QACjE,OAAQ,IAAI,CAAC,kBAAwC,CAAC,WAAW,CAAC;YAC9D,WAAW,EAAE,KAAK;YAClB,IAAI;SACU,CAAC,CAAC;IACxB,CAAC,CAAA;CACJ;AApSD,0DAoSC"}
@@ -1,62 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.WorkerSupport = void 0;
7
- /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF */ // --> OFF
8
- const worker_threads_1 = require("worker_threads");
9
- const webWorkerMessageHandler_1 = require("./webWorkerMessageHandler");
10
- const stsutils_1 = require("@nsshunt/stsutils");
11
- const chalk_1 = __importDefault(require("chalk"));
12
- class WorkerSupport {
13
- #wwClient = null;
14
- constructor() {
15
- this.#wwClient = new webWorkerMessageHandler_1.WebWorkerMessageHandler({
16
- logger: stsutils_1.defaultLogger,
17
- role: 'CLIENT',
18
- namespace: 'mytestapp',
19
- groups: [],
20
- ignoreEvents: ['ping'],
21
- messagePort: worker_threads_1.parentPort
22
- });
23
- this.#wwClient.Start();
24
- this.#wwClient.on('test', (arg1, callback) => {
25
- callback({
26
- status: `PID: [${process.pid}]: response message from event = test with args ${JSON.stringify(arg1)}`
27
- });
28
- });
29
- this.#wwClient.on('globalmessage', (arg1, callback) => {
30
- callback({
31
- status: `PID: [${process.pid}]: response message from event = globalmessage with args ${JSON.stringify(arg1)}`
32
- });
33
- });
34
- setTimeout(async () => {
35
- const sendObj1 = { from: 'child1' };
36
- console.log(chalk_1.default.magenta(`calling globalmessage = [${JSON.stringify(sendObj1)}]`));
37
- const retVal1 = await this.#wwClient?.emitex('globalmessage', sendObj1);
38
- console.log(chalk_1.default.magenta(`caller response from globalmessage = [${JSON.stringify(retVal1)}]`));
39
- const sendObj2 = { from: 'child2' };
40
- console.log(chalk_1.default.magenta(`calling test = [${JSON.stringify(sendObj2)}]`));
41
- const retVal2 = await this.#wwClient?.emitex('test', sendObj2);
42
- console.log(chalk_1.default.magenta(`caller response from test = [${JSON.stringify(retVal2)}]`));
43
- }, 2000);
44
- }
45
- ProcessMessage = async (data) => {
46
- console.log(`Received: [${data}]`);
47
- //parentPort?.postMessage(data);
48
- };
49
- }
50
- exports.WorkerSupport = WorkerSupport;
51
- new WorkerSupport();
52
- /*
53
- parentPort?.on('message', (data: any) => {
54
- if (isNode) {
55
- worker.ProcessMessage(data);
56
- } else {
57
- // const payloadMessage: IIWMessagePayload = data.data as IIWMessagePayload; // browser version
58
- worker.ProcessMessage(data.data); // browser version
59
- }
60
- });
61
- */
62
- //# sourceMappingURL=webWorkerSupport.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webWorkerSupport.js","sourceRoot":"","sources":["../../src/messagehandling/webWorkerSupport.ts"],"names":[],"mappings":";;;;;;AAAA,wFAAwF,CAAE,yBAAyB;AACnH,mDAAyD;AAEzD,uEAAmE;AAEnE,gDAA6D;AAE7D,kDAA0B;AAE1B,MAAa,aAAa;IACtB,SAAS,GAAmC,IAAI,CAAC;IAEjD;QACI,IAAI,CAAC,SAAS,GAAG,IAAI,iDAAuB,CAAC;YACzC,MAAM,EAAE,wBAAa;YACrB,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,WAAW;YACtB,MAAM,EAAE,EAAG;YACX,YAAY,EAAE,CAAE,MAAM,CAAE;YACxB,WAAW,EAAE,2BAAyB;SACzC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAEvB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAgB,EAAE,QAAa,EAAE,EAAE;YAC1D,QAAQ,CAAE;gBACN,MAAM,EAAE,SAAS,OAAO,CAAC,GAAG,mDAAmD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;aACxG,CAAC,CAAA;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,IAAgB,EAAE,QAAa,EAAE,EAAE;YACnE,QAAQ,CAAE;gBACN,MAAM,EAAE,SAAS,OAAO,CAAC,GAAG,4DAA4D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;aACjH,CAAC,CAAA;QACN,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,OAAO,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACpF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,OAAO,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAEhG,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,OAAO,CAAC,gCAAgC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3F,CAAC,EAAE,IAAI,CAAC,CAAC;IACb,CAAC;IAED,cAAc,GAAG,KAAK,EAAC,IAAS,EAAE,EAAE;QAChC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,CAAC;QACnC,gCAAgC;IACpC,CAAC,CAAA;CACJ;AA3CD,sCA2CC;AAED,IAAI,aAAa,EAAE,CAAC;AAEpB;;;;;;;;;EASE"}