@nsshunt/stsappframework 3.1.99 → 3.1.101

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.
@@ -27,16 +27,16 @@ class IPCMessageManager {
27
27
  ReceivedMessageFromMaster(msg) {
28
28
  // Override in subclass if required
29
29
  }
30
- SendMessage = (payload) => {
30
+ SendMessage = (payload, options) => {
31
31
  return new Promise((resolve, reject) => {
32
- this.#SendMessage(payload, (payload) => {
32
+ this.#SendMessage(payload, options, (payload) => {
33
33
  resolve(payload.responsePayload);
34
34
  }, (payload) => {
35
35
  reject(payload.requestPayload);
36
36
  });
37
37
  });
38
38
  };
39
- #SendMessage = (payload, callBack, errorCallBack) => {
39
+ #SendMessage = (payload, options, callBack, errorCallBack) => {
40
40
  const messageId = (0, uuid_1.v4)();
41
41
  const requestPayload = {
42
42
  header: this.#messageHeader,
@@ -64,30 +64,38 @@ class IPCMessageManager {
64
64
  };
65
65
  this.#inflightMessages[messageRecord.messageId] = messageRecord;
66
66
  //this.#LogDebugMessage(chalk.cyan(`sending: [${JSON.stringify(requestPayload)}]`));
67
- this.#options.messageSender(requestPayload);
67
+ this.#options.messageSender(requestPayload, options);
68
68
  };
69
- ProcessMessage = (msg) => {
69
+ #ProcessMessage = async (msg, options) => {
70
70
  if (msg.header && msg.header.localeCompare(this.#messageHeader) === 0) {
71
71
  const message = msg;
72
72
  if (this.#inflightMessages[message.messageId]) {
73
73
  const inFlightMessageRecord = this.#inflightMessages[message.messageId];
74
74
  inFlightMessageRecord.responses[message.pid] = { ...message };
75
- inFlightMessageRecord.endTime = performance.now();
76
- clearTimeout(inFlightMessageRecord.timeout);
77
- //this.#LogDebugMessage(chalk.green(`received: [${JSON.stringify(message)}]`));
78
- inFlightMessageRecord.callBack(message);
79
- delete this.#inflightMessages[message.messageId];
75
+ let completed = true; // Defaults to true
76
+ if (this.#options.ProcessResponseMessage) {
77
+ completed = await this.#options.ProcessResponseMessage(inFlightMessageRecord.responses[message.pid], options);
78
+ }
79
+ if (completed) {
80
+ inFlightMessageRecord.endTime = performance.now();
81
+ clearTimeout(inFlightMessageRecord.timeout);
82
+ //this.#LogDebugMessage(chalk.green(`received: [${JSON.stringify(message)}]`));
83
+ inFlightMessageRecord.callBack(message, options);
84
+ delete this.#inflightMessages[message.messageId];
85
+ }
80
86
  }
81
87
  else {
82
88
  throw new Error(`Could not find Request/Response message with id: [${message.messageId}]`);
83
89
  }
84
90
  }
85
91
  };
86
- Start = () => {
92
+ Start = (options) => {
87
93
  this.#messageHeader = `__STS__${this.#options.namespace}__${(0, uuid_1.v4)()}`;
94
+ this.#options.messageReceiverStart(options);
88
95
  };
89
- Stop = () => {
96
+ Stop = (options) => {
90
97
  // Kill in-flight messages
98
+ this.#options.messageReceiverStop(options);
91
99
  for (const [, iPCMessageProcessorWorkerRecord] of Object.entries(this.#inflightMessages)) {
92
100
  if (iPCMessageProcessorWorkerRecord.timeout) {
93
101
  clearTimeout(iPCMessageProcessorWorkerRecord.timeout);
@@ -95,6 +103,24 @@ class IPCMessageManager {
95
103
  }
96
104
  this.#inflightMessages = {};
97
105
  };
106
+ // Process a message recieved from a worker
107
+ ProcessMessage = async (msg, options) => {
108
+ if (msg.header) {
109
+ const checkName = `__STS__${this.#options.namespace}__`;
110
+ if (msg.header.includes(checkName)) {
111
+ const message = msg;
112
+ if (msg.messageType.localeCompare('REQUEST') === 0) {
113
+ message.responsePayload = await this.#options.ProcessRequestMessage(message, options);
114
+ message.messageType = 'RESPONSE';
115
+ this.#options.messageSender(message, options);
116
+ }
117
+ else {
118
+ // Received a response (to my request)
119
+ this.#ProcessMessage(msg, options);
120
+ }
121
+ }
122
+ }
123
+ };
98
124
  }
99
125
  exports.IPCMessageManager = IPCMessageManager;
100
126
  //# sourceMappingURL=ipcMessageManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ipcMessageManager.js","sourceRoot":"","sources":["../src/ipcMessageManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ipcMessageManager.js","sourceRoot":"","sources":["../src/ipcMessageManager.ts"],"names":[],"mappings":"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"}
@@ -4,57 +4,51 @@ exports.IPCMessageProcessorPrimary = void 0;
4
4
  /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
5
5
  const stsutils_1 = require("@nsshunt/stsutils");
6
6
  const ipcMessageManager_1 = require("./ipcMessageManager");
7
- /**
8
- * todo
9
- * @typedef {Object} options - todo
10
- * @property {boolean} [wssServer=false] - Create a web socket server on this worker instance
11
- */
12
7
  class IPCMessageProcessorPrimary {
13
- #options;
14
8
  #ipcMessageManager;
15
- constructor(options) {
16
- this.#options = options;
9
+ #worker = null;
10
+ constructor(classOptions) {
17
11
  const ipcMessageManagerOptions = {
18
12
  logger: stsutils_1.defaultLogger,
19
13
  requestResponseMessageTimeout: 2000,
20
- namespace: options.namespace,
21
- messageSender: (payload) => {
14
+ namespace: classOptions.namespace,
15
+ messageSender: (payload, options) => {
22
16
  options.worker.send(payload);
23
- }
24
- };
25
- this.#ipcMessageManager = new ipcMessageManager_1.IPCMessageManager(ipcMessageManagerOptions);
26
- }
27
- // Process a message recieved from a worker
28
- #processMessage = async (worker, msg) => {
29
- if (msg.header) {
30
- const checkName = `__STS__${this.#options.namespace}__`;
31
- if (msg.header.includes(checkName)) {
32
- const message = msg;
33
- if (msg.messageType.localeCompare('REQUEST') === 0) {
34
- message.responsePayload = await this.#options.processCommand(message);
35
- message.messageType = 'RESPONSE';
36
- //this.#LogDebugMessage(chalk.magenta(`sending: [${JSON.stringify(message)}]`))
37
- worker.send(message);
17
+ },
18
+ ProcessRequestMessage: async (payload, options) => {
19
+ if (classOptions.processPayload) {
20
+ return classOptions.processPayload(payload, options);
38
21
  }
39
22
  else {
40
- // Received a response (to my request)
41
- this.#ipcMessageManager.ProcessMessage(msg);
23
+ return {};
42
24
  }
25
+ },
26
+ messageReceiverStart: (options) => {
27
+ // Receive a message to process from a worker
28
+ const worker = options.worker;
29
+ worker.on('message', (payload) => this.#ipcMessageManager.ProcessMessage(payload, { worker }));
30
+ },
31
+ messageReceiverStop: (options) => {
32
+ const worker = options.worker;
33
+ worker.off('message', (payload) => this.#ipcMessageManager.ProcessMessage(payload, { worker }));
43
34
  }
44
- }
45
- };
46
- SendMessage = (payload) => {
47
- return this.#ipcMessageManager.SendMessage(payload);
35
+ };
36
+ this.#ipcMessageManager = new ipcMessageManager_1.IPCMessageManager(ipcMessageManagerOptions);
37
+ }
38
+ SendMessage = async (payload) => {
39
+ return this.#ipcMessageManager.SendMessage(payload, { worker: this.#worker });
48
40
  };
49
41
  Start = (worker) => {
50
- this.#ipcMessageManager.Start();
51
- // Receive a message to process from a worker
52
- worker.on('message', (payload) => this.#processMessage(worker, payload));
42
+ this.#ipcMessageManager.Start({ worker });
43
+ this.#worker = worker;
53
44
  };
54
- Stop = (worker) => {
55
- worker.off('message', (payload) => this.#processMessage(worker, payload));
56
- this.#ipcMessageManager.Stop();
45
+ Stop = () => {
46
+ this.#ipcMessageManager.Stop({ worker: this.#worker });
47
+ this.#worker = null;
57
48
  };
49
+ get worker() {
50
+ return this.#worker;
51
+ }
58
52
  }
59
53
  exports.IPCMessageProcessorPrimary = IPCMessageProcessorPrimary;
60
54
  //# sourceMappingURL=ipcMessageProcessorPrimary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ipcMessageProcessorPrimary.js","sourceRoot":"","sources":["../src/ipcMessageProcessorPrimary.ts"],"names":[],"mappings":";;;AAAA,kDAAkD,CAAE,UAAU;AAC9D,gDAAyE;AAMzE,2DAAiF;AAQjF;;;;GAIG;AACH,MAAa,0BAA0B;IAEnC,QAAQ,CAA8B;IACtC,kBAAkB,CAAoB;IAEtC,YAAY,OAAoC;QAC5C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,MAAM,wBAAwB,GAA6B;YACvD,MAAM,EAAE,wBAAa;YACrB,6BAA6B,EAAE,IAAI;YACnC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,CAAC,OAAuC,EAAE,EAAE;gBACtD,OAAO,CAAC,MAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;SACJ,CAAA;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,qCAAiB,CAAC,wBAAwB,CAAC,CAAC;IAC9E,CAAC;IAED,2CAA2C;IAC3C,eAAe,GAAG,KAAK,EAAE,MAAc,EAAE,GAAQ,EAAE,EAAE;QACjD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,UAAU,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC;YACxD,IAAK,GAAG,CAAC,MAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7C,MAAM,OAAO,GAAI,GAAsC,CAAC;gBACxD,IAAI,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjD,OAAO,CAAC,eAAe,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;oBACtE,OAAO,CAAC,WAAW,GAAG,UAAU,CAAA;oBAChC,+EAA+E;oBAC/E,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACJ,sCAAsC;oBACtC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBAChD,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC,CAAA;IAED,WAAW,GAAG,CAAC,OAAmB,EAAuB,EAAE;QACvD,OAAO,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC,CAAA;IAED,KAAK,GAAG,CAAC,MAAc,EAAE,EAAE;QACvB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAChC,6CAA6C;QAC7C,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAA;IAED,IAAI,GAAG,CAAC,MAAc,EAAE,EAAE;QACtB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC,CAAA;CACJ;AApDD,gEAoDC"}
1
+ {"version":3,"file":"ipcMessageProcessorPrimary.js","sourceRoot":"","sources":["../src/ipcMessageProcessorPrimary.ts"],"names":[],"mappings":";;;AAAA,kDAAkD,CAAE,UAAU;AAC9D,gDAAyE;AAMzE,2DAAiF;AAQjF,MAAa,0BAA0B;IAEnC,kBAAkB,CAAoB;IACtC,OAAO,GAAkB,IAAI,CAAC;IAE9B,YAAY,YAAyC;QACjD,MAAM,wBAAwB,GAA6B;YACvD,MAAM,EAAE,wBAAa;YACrB,6BAA6B,EAAE,IAAI;YACnC,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,aAAa,EAAE,CAAC,OAAuC,EAAE,OAAY,EAAE,EAAE;gBACpE,OAAO,CAAC,MAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,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,6CAA6C;gBAC7C,MAAM,MAAM,GAAI,OAAO,CAAC,MAAiB,CAAC;gBAC1C,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACnG,CAAC;YACD,mBAAmB,EAAE,CAAC,OAAY,EAAE,EAAE;gBAClC,MAAM,MAAM,GAAI,OAAO,CAAC,MAAiB,CAAC;gBAC1C,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACpG,CAAC;SACJ,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,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC,CAAA;IAED,KAAK,GAAG,CAAC,MAAc,EAAE,EAAE;QACvB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC,CAAA;IAED,IAAI,GAAG,GAAG,EAAE;QACR,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC,CAAA;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AAlDD,gEAkDC"}
@@ -5,52 +5,43 @@ exports.IPCMessageProcessorWorker = void 0;
5
5
  const stsutils_1 = require("@nsshunt/stsutils");
6
6
  const ipcMessageManager_1 = require("./ipcMessageManager");
7
7
  class IPCMessageProcessorWorker {
8
- #options;
9
8
  #ipcMessageManager;
10
- constructor(options) {
11
- this.#options = options;
9
+ constructor(classOptions) {
12
10
  const ipcMessageManagerOptions = {
13
11
  logger: stsutils_1.defaultLogger,
14
- requestResponseMessageTimeout: options.requestResponseMessageTimeout,
15
- namespace: options.namespace,
16
- messageSender: (payload) => {
12
+ requestResponseMessageTimeout: classOptions.requestResponseMessageTimeout,
13
+ namespace: classOptions.namespace,
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
15
+ messageSender: (payload, options) => {
16
+ // Options not required for sending payloads to the master process
17
17
  process.send(payload);
18
- }
19
- };
20
- this.#ipcMessageManager = new ipcMessageManager_1.IPCMessageManager(ipcMessageManagerOptions);
21
- }
22
- // Process a message recieved from the primary thread
23
- #processMessage = async (msg) => {
24
- if (msg.header) {
25
- const checkName = `__STS__${this.#options.namespace}__`;
26
- if (msg.header.includes(checkName)) {
27
- const message = msg;
28
- if (msg.messageType.localeCompare('REQUEST') === 0) {
29
- message.responsePayload = await this.#options.processCommand(message);
30
- message.messageType = 'RESPONSE';
31
- //this.#LogDebugMessage(chalk.magenta(`sending: [${JSON.stringify(message)}]`))
32
- process.send(message);
18
+ },
19
+ ProcessRequestMessage: async (payload, options) => {
20
+ if (classOptions.processPayload) {
21
+ return classOptions.processPayload(payload, options);
33
22
  }
34
23
  else {
35
- // Received a response (to my request)
36
- this.#ipcMessageManager.ProcessMessage(msg);
24
+ return {};
37
25
  }
26
+ },
27
+ messageReceiverStart: (options) => {
28
+ // Receive a message response back from the primary thread
29
+ process.on('message', (payload) => this.#ipcMessageManager.ProcessMessage(payload, options));
30
+ },
31
+ messageReceiverStop: (options) => {
32
+ process.off('message', (payload) => this.#ipcMessageManager.ProcessMessage(payload, options));
38
33
  }
39
- }
40
- };
41
- SendMessage = (payload) => {
42
- return this.#ipcMessageManager.SendMessage(payload);
34
+ };
35
+ this.#ipcMessageManager = new ipcMessageManager_1.IPCMessageManager(ipcMessageManagerOptions);
36
+ }
37
+ SendMessage = async (payload) => {
38
+ return this.#ipcMessageManager.SendMessage(payload, {});
43
39
  };
44
40
  Start = () => {
45
- this.#ipcMessageManager.Start();
46
- // Receive a message response back from the primary thread
47
- //process.on('message', this.#ipcMessageManager.ProcessMessage);
48
- process.on('message', this.#processMessage);
41
+ this.#ipcMessageManager.Start({});
49
42
  };
50
43
  Stop = () => {
51
- //process.off('message', this.#ipcMessageManager.ProcessMessage);
52
- process.off('message', this.#processMessage);
53
- this.#ipcMessageManager.Stop();
44
+ this.#ipcMessageManager.Stop({});
54
45
  };
55
46
  }
56
47
  exports.IPCMessageProcessorWorker = IPCMessageProcessorWorker;
@@ -1 +1 @@
1
- {"version":3,"file":"ipcMessageProcessorWorker.js","sourceRoot":"","sources":["../src/ipcMessageProcessorWorker.ts"],"names":[],"mappings":";;;AAAA,kDAAkD,CAAE,UAAU;AAC9D,gDAAyE;AAIzE,2DAAiF;AASjF,MAAa,yBAAyB;IAClC,QAAQ,CAA4B;IACpC,kBAAkB,CAAoB;IAEtC,YAAY,OAAmC;QAC3C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,MAAM,wBAAwB,GAA6B;YACvD,MAAM,EAAE,wBAAa;YACrB,6BAA6B,EAAE,OAAO,CAAC,6BAA6B;YACpE,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,CAAC,OAAuC,EAAE,EAAE;gBACtD,OAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;SACJ,CAAA;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,qCAAiB,CAAC,wBAAwB,CAAC,CAAC;IAC9E,CAAC;IAED,qDAAqD;IACrD,eAAe,GAAG,KAAK,EAAE,GAAQ,EAAE,EAAE;QACjC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,UAAU,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC;YACxD,IAAK,GAAG,CAAC,MAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7C,MAAM,OAAO,GAAI,GAAsC,CAAC;gBACxD,IAAI,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjD,OAAO,CAAC,eAAe,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;oBACtE,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;oBACjC,+EAA+E;oBAC9E,OAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACJ,sCAAsC;oBACtC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBAChD,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC,CAAA;IAED,WAAW,GAAG,CAAC,OAAmB,EAAuB,EAAE;QACvD,OAAO,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC,CAAA;IAED,KAAK,GAAG,GAAG,EAAE;QACT,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAEhC,0DAA0D;QAC1D,gEAAgE;QAChE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC,CAAA;IAED,IAAI,GAAG,GAAG,EAAE;QACR,iEAAiE;QACjE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7C,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC,CAAA;CACJ;AArDD,8DAqDC"}
1
+ {"version":3,"file":"ipcMessageProcessorWorker.js","sourceRoot":"","sources":["../src/ipcMessageProcessorWorker.ts"],"names":[],"mappings":";;;AAAA,kDAAkD,CAAE,UAAU;AAC9D,gDAAyE;AAIzE,2DAAiF;AASjF,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,kGAAkG;YAClG,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,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACjG,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;SACJ,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;AA1CD,8DA0CC"}
@@ -7,54 +7,72 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  const appConfig_1 = require("./appConfig");
8
8
  const __1 = require("./..");
9
9
  const appWorkerWSS_1 = require("./appWorkerWSS");
10
- const cluster_1 = __importDefault(require("cluster"));
10
+ const node_cluster_1 = __importDefault(require("node:cluster"));
11
11
  const ipcMessageProcessorWorker_1 = require("./../ipcMessageProcessorWorker");
12
12
  const stsutils_1 = require("@nsshunt/stsutils");
13
13
  const ipcMessageProcessorPrimary_1 = require("./../ipcMessageProcessorPrimary");
14
14
  const chalk_1 = __importDefault(require("chalk"));
15
15
  const sleepVal = 0;
16
- const maxLoop = 20000;
17
- if (cluster_1.default.isPrimary) {
18
- new __1.MasterProcessBase((0, appConfig_1.ServiceConfigOptions)(true, cluster_1.default.isPrimary)).SetupServer();
16
+ const maxLoop = 100;
17
+ const zzz = async () => {
18
+ const ipc = [];
19
+ for (const id in node_cluster_1.default.workers) {
20
+ const worker = node_cluster_1.default.workers[id];
21
+ const p1 = new ipcMessageProcessorPrimary_1.IPCMessageProcessorPrimary({
22
+ logger: stsutils_1.defaultLogger,
23
+ namespace: 'zzz'
24
+ });
25
+ p1.Start(node_cluster_1.default.workers[id]);
26
+ ipc.push(p1);
27
+ }
28
+ const promArray = [];
29
+ ipc.forEach(v => promArray.push(v.SendMessage({ id: v.worker?.id, cmd: 'cmd1' })));
30
+ const retVal = await Promise.all(promArray).catch(error => {
31
+ console.error(chalk_1.default.red(` ===>>> Error with promise.all: [${JSON.stringify(error)}]`));
32
+ });
33
+ if (retVal) {
34
+ console.log(chalk_1.default.green(JSON.stringify(retVal)));
35
+ }
36
+ };
37
+ if (node_cluster_1.default.isPrimary) {
38
+ new __1.MasterProcessBase((0, appConfig_1.ServiceConfigOptions)(true, node_cluster_1.default.isPrimary)).SetupServer();
19
39
  setTimeout(async () => {
20
- for (const id in cluster_1.default.workers) {
40
+ for (const id in node_cluster_1.default.workers) {
21
41
  const p1 = new ipcMessageProcessorPrimary_1.IPCMessageProcessorPrimary({
22
42
  logger: stsutils_1.defaultLogger,
23
43
  namespace: 'test1',
24
- processCommand: async (payload) => {
44
+ processPayload: async (payload) => {
25
45
  return {
26
46
  msg: `From PRIMARY: [${process.pid}]`,
27
47
  yousent: payload.requestPayload,
28
48
  hello1: `world1`,
29
49
  pid: process.pid
30
50
  };
31
- },
32
- worker: cluster_1.default.workers[id]
51
+ }
33
52
  });
34
53
  const p2 = new ipcMessageProcessorPrimary_1.IPCMessageProcessorPrimary({
35
54
  logger: stsutils_1.defaultLogger,
36
55
  namespace: 'test2',
37
- processCommand: async (payload) => {
56
+ processPayload: async (payload) => {
38
57
  return {
39
58
  msg: `From PRIMARY: [${process.pid}]`,
40
59
  yousent: payload.requestPayload,
41
60
  hello2: `world2`,
42
61
  pid: process.pid
43
62
  };
44
- },
45
- worker: cluster_1.default.workers[id]
63
+ }
46
64
  });
47
- p1.Start(cluster_1.default.workers[id]);
48
- p2.Start(cluster_1.default.workers[id]);
65
+ p1.Start(node_cluster_1.default.workers[id]);
66
+ p2.Start(node_cluster_1.default.workers[id]);
49
67
  setTimeout(async () => {
50
68
  for (let i = 0; i < maxLoop; i++) {
51
69
  const retVal1 = await p1.SendMessage({
52
- from1: 'text from 1',
53
- loop: i
70
+ from1: 'text from PRIMARY 1',
71
+ loop1: i,
54
72
  });
55
73
  const retVal2 = await p2.SendMessage({
56
- from1: 'text from 2',
57
- loop: i
74
+ from2: 'text from PRIMARY 2',
75
+ loop2: i
58
76
  });
59
77
  console.log(`[${process.pid}] [${JSON.stringify(retVal1)}]`);
60
78
  console.log(`[${process.pid}] [${JSON.stringify(retVal2)}]`);
@@ -62,19 +80,20 @@ if (cluster_1.default.isPrimary) {
62
80
  }
63
81
  }, 1000);
64
82
  }
83
+ zzz();
65
84
  }, 1000);
66
85
  }
67
86
  else {
68
- new appWorkerWSS_1.WorkerProcess((0, appConfig_1.ServiceConfigOptions)(true, cluster_1.default.isPrimary)).SetupServer();
87
+ new appWorkerWSS_1.WorkerProcess((0, appConfig_1.ServiceConfigOptions)(true, node_cluster_1.default.isPrimary)).SetupServer();
69
88
  const w1 = new ipcMessageProcessorWorker_1.IPCMessageProcessorWorker({
70
89
  logger: stsutils_1.defaultLogger,
71
90
  namespace: 'test1',
72
91
  requestResponseMessageTimeout: 2000,
73
- processCommand: async (payload) => {
92
+ processPayload: async (payload) => {
74
93
  return {
75
- msg: `From WORKER: [${process.pid}]`,
94
+ msg1: `From WORKER: [${process.pid}]`,
76
95
  yousent1: payload.requestPayload,
77
- pid: process.pid
96
+ pid1: process.pid
78
97
  };
79
98
  }
80
99
  });
@@ -82,21 +101,54 @@ else {
82
101
  logger: stsutils_1.defaultLogger,
83
102
  namespace: 'test2',
84
103
  requestResponseMessageTimeout: 2000,
85
- processCommand: async (payload) => {
104
+ processPayload: async (payload) => {
86
105
  return {
87
- msg: `From WORKER: [${process.pid}]`,
106
+ msg2: `From WORKER: [${process.pid}]`,
88
107
  yousent2: payload.requestPayload,
89
- pid: process.pid
108
+ pid2: process.pid
109
+ };
110
+ }
111
+ });
112
+ const w3 = new ipcMessageProcessorWorker_1.IPCMessageProcessorWorker({
113
+ logger: stsutils_1.defaultLogger,
114
+ namespace: 'zzz',
115
+ requestResponseMessageTimeout: 2000,
116
+ processPayload: async (payload) => {
117
+ switch (payload.requestPayload.cmd) {
118
+ case 'cmd1':
119
+ return {
120
+ msg3: `COMMAND 1 From WORKER: [${process.pid}]`,
121
+ yousent3: payload.requestPayload,
122
+ pid3: process.pid
123
+ };
124
+ break;
125
+ case 'cmd2':
126
+ return {
127
+ msg3: `COMMAND 2 From WORKER: [${process.pid}]`,
128
+ yousent3: payload.requestPayload,
129
+ pid3: process.pid
130
+ };
131
+ break;
132
+ }
133
+ return {
134
+ msg3: `COMMAND Unknown From WORKER: [${process.pid}]`,
135
+ yousent3: payload.requestPayload,
136
+ pid3: process.pid
90
137
  };
91
138
  }
92
139
  });
93
140
  w1.Start();
94
141
  w2.Start();
142
+ w3.Start();
95
143
  setTimeout(async () => {
96
144
  for (let i = 0; i < maxLoop; i++) {
97
- const retVal1 = await w1.SendMessage({ hello: `from worker 1: ${i}` });
145
+ const retVal1 = await w1.SendMessage({
146
+ hello1: `from WORKER 1: ${i}`
147
+ });
98
148
  console.log(chalk_1.default.blue(` ==> [${process.pid}] [${JSON.stringify(retVal1)}]`));
99
- const retVal2 = await w2.SendMessage({ hello: `from worker 2: ${i}` });
149
+ const retVal2 = await w2.SendMessage({
150
+ hello2: `from WORKER 2: ${i}`
151
+ });
100
152
  console.log(chalk_1.default.blue(` ==> [${process.pid}] [${JSON.stringify(retVal2)}]`));
101
153
  await (0, stsutils_1.Sleep)(sleepVal);
102
154
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/testing/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/testing/app.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nsshunt/stsappframework",
3
- "version": "3.1.99",
3
+ "version": "3.1.101",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "./types/index.d.ts",
@@ -280,6 +280,6 @@ export interface IIPCMessageProcessorWorkerRecord {
280
280
  startTime: number
281
281
  endTime: number
282
282
  timeout: NodeJS.Timeout | null
283
- callBack: (payload: IIPCMessageProcessorIPCPayload) => void
284
- errorCallBack: (payload: IIPCMessageProcessorIPCPayload) => void
283
+ callBack: (payload: IIPCMessageProcessorIPCPayload, options: any) => void
284
+ errorCallBack: (payload: IIPCMessageProcessorIPCPayload, option: any) => void
285
285
  }
@@ -11,7 +11,11 @@ export interface IPCMessageManagerOptions {
11
11
  logger: ISTSLogger
12
12
  requestResponseMessageTimeout: number
13
13
  namespace: string
14
- messageSender: (payload: IIPCMessageProcessorIPCPayload) => void
14
+ messageSender: (payload: IIPCMessageProcessorIPCPayload, options: any) => void
15
+ ProcessRequestMessage: (payload: IIPCMessageProcessorIPCPayload, options: any) => Promise<JSONObject>
16
+ ProcessResponseMessage?: (payload: IIPCMessageProcessorIPCPayload, options: any) => Promise<boolean>
17
+ messageReceiverStart: (options: any) => void
18
+ messageReceiverStop: (options: any) => void
15
19
  }
16
20
  /**
17
21
  * todo
@@ -38,9 +42,9 @@ export class IPCMessageManager
38
42
  // Override in subclass if required
39
43
  }
40
44
 
41
- SendMessage = (payload: JSONObject): Promise<JSONObject> => {
45
+ SendMessage = (payload: JSONObject, options: any): Promise<JSONObject> => {
42
46
  return new Promise((resolve, reject) => {
43
- this.#SendMessage(payload,
47
+ this.#SendMessage(payload, options,
44
48
  (payload: IIPCMessageProcessorIPCPayload) => {
45
49
  resolve(payload.responsePayload);
46
50
  },
@@ -50,7 +54,7 @@ export class IPCMessageManager
50
54
  })
51
55
  }
52
56
 
53
- #SendMessage = (payload: JSONObject,
57
+ #SendMessage = (payload: JSONObject, options: any,
54
58
  callBack: (payload: IIPCMessageProcessorIPCPayload) => void,
55
59
  errorCallBack: (payload: IIPCMessageProcessorIPCPayload) => void
56
60
  ): void => {
@@ -81,32 +85,41 @@ export class IPCMessageManager
81
85
  }
82
86
  this.#inflightMessages[messageRecord.messageId] = messageRecord;
83
87
  //this.#LogDebugMessage(chalk.cyan(`sending: [${JSON.stringify(requestPayload)}]`));
84
- this.#options.messageSender(requestPayload);
88
+ this.#options.messageSender(requestPayload, options);
85
89
  }
86
90
 
87
- ProcessMessage = (msg: any) => {
91
+ #ProcessMessage = async (msg: any, options: any): Promise<void> => {
88
92
  if (msg.header && msg.header.localeCompare(this.#messageHeader) === 0) {
89
93
  const message = (msg as IIPCMessageProcessorIPCPayload);
90
94
  if (this.#inflightMessages[message.messageId]) {
91
95
  const inFlightMessageRecord: IIPCMessageProcessorWorkerRecord = this.#inflightMessages[message.messageId];
92
96
  inFlightMessageRecord.responses[message.pid] = { ...message };
93
- inFlightMessageRecord.endTime = performance.now();
94
- clearTimeout(inFlightMessageRecord.timeout as NodeJS.Timer);
95
- //this.#LogDebugMessage(chalk.green(`received: [${JSON.stringify(message)}]`));
96
- inFlightMessageRecord.callBack(message)
97
- delete this.#inflightMessages[message.messageId];
97
+ let completed = true; // Defaults to true
98
+ if (this.#options.ProcessResponseMessage) {
99
+ completed = await this.#options.ProcessResponseMessage(inFlightMessageRecord.responses[message.pid], options);
100
+ }
101
+ if (completed) {
102
+ inFlightMessageRecord.endTime = performance.now();
103
+ clearTimeout(inFlightMessageRecord.timeout as NodeJS.Timer);
104
+ //this.#LogDebugMessage(chalk.green(`received: [${JSON.stringify(message)}]`));
105
+ inFlightMessageRecord.callBack(message, options)
106
+ delete this.#inflightMessages[message.messageId];
107
+ }
98
108
  } else {
99
109
  throw new Error(`Could not find Request/Response message with id: [${message.messageId}]`);
100
110
  }
101
111
  }
102
112
  }
103
113
 
104
- Start = () => {
114
+ Start = (options: any) => {
105
115
  this.#messageHeader = `__STS__${this.#options.namespace}__${uuidv4()}`;
116
+ this.#options.messageReceiverStart(options);
106
117
  }
107
118
 
108
- Stop = () => {
119
+ Stop = (options: any) => {
109
120
  // Kill in-flight messages
121
+ this.#options.messageReceiverStop(options);
122
+
110
123
  for (const [, iPCMessageProcessorWorkerRecord] of Object.entries(this.#inflightMessages)) {
111
124
  if (iPCMessageProcessorWorkerRecord.timeout) {
112
125
  clearTimeout(iPCMessageProcessorWorkerRecord.timeout);
@@ -114,4 +127,22 @@ export class IPCMessageManager
114
127
  }
115
128
  this.#inflightMessages = { };
116
129
  }
130
+
131
+ // Process a message recieved from a worker
132
+ ProcessMessage = async (msg: any, options: any) => {
133
+ if (msg.header) {
134
+ const checkName = `__STS__${this.#options.namespace}__`;
135
+ if ((msg.header as string).includes(checkName)) {
136
+ const message = (msg as IIPCMessageProcessorIPCPayload);
137
+ if (msg.messageType.localeCompare('REQUEST') === 0) {
138
+ message.responsePayload = await this.#options.ProcessRequestMessage(message, options);
139
+ message.messageType = 'RESPONSE'
140
+ this.#options.messageSender(message, options);
141
+ } else {
142
+ // Received a response (to my request)
143
+ this.#ProcessMessage(msg, options);
144
+ }
145
+ }
146
+ }
147
+ }
117
148
  }
@@ -1,7 +1,7 @@
1
1
  /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
2
2
  import { ISTSLogger, JSONObject, defaultLogger } from '@nsshunt/stsutils'
3
3
 
4
- import { Worker } from 'node:cluster'
4
+ import { Worker } from 'node:cluster';
5
5
 
6
6
  import { IIPCMessageProcessorIPCPayload } from './commonTypes'
7
7
 
@@ -10,64 +10,57 @@ import { IPCMessageManager, IPCMessageManagerOptions } from './ipcMessageManager
10
10
  export interface IIPCMessageProcessorPrimary {
11
11
  logger: ISTSLogger
12
12
  namespace: string
13
- processCommand: (payload: IIPCMessageProcessorIPCPayload) => Promise<JSONObject>
14
- worker: Worker
13
+ processPayload?: (payload: IIPCMessageProcessorIPCPayload, options: any) => Promise<JSONObject>
15
14
  }
16
- /**
17
- * todo
18
- * @typedef {Object} options - todo
19
- * @property {boolean} [wssServer=false] - Create a web socket server on this worker instance
20
- */
15
+
21
16
  export class IPCMessageProcessorPrimary
22
17
  {
23
- #options: IIPCMessageProcessorPrimary;
24
18
  #ipcMessageManager: IPCMessageManager;
19
+ #worker: Worker | null = null;
25
20
 
26
- constructor(options: IIPCMessageProcessorPrimary) {
27
- this.#options = options;
28
-
21
+ constructor(classOptions: IIPCMessageProcessorPrimary) {
29
22
  const ipcMessageManagerOptions: IPCMessageManagerOptions = {
30
23
  logger: defaultLogger,
31
24
  requestResponseMessageTimeout: 2000,
32
- namespace: options.namespace,
33
- messageSender: (payload: IIPCMessageProcessorIPCPayload) => {
25
+ namespace: classOptions.namespace,
26
+ messageSender: (payload: IIPCMessageProcessorIPCPayload, options: any) => {
34
27
  (options.worker as any).send(payload);
35
- }
36
- }
37
- this.#ipcMessageManager = new IPCMessageManager(ipcMessageManagerOptions);
38
- }
39
-
40
- // Process a message recieved from a worker
41
- #processMessage = async (worker: Worker, msg: any) => {
42
- if (msg.header) {
43
- const checkName = `__STS__${this.#options.namespace}__`;
44
- if ((msg.header as string).includes(checkName)) {
45
- const message = (msg as IIPCMessageProcessorIPCPayload);
46
- if (msg.messageType.localeCompare('REQUEST') === 0) {
47
- message.responsePayload = await this.#options.processCommand(message);
48
- message.messageType = 'RESPONSE'
49
- //this.#LogDebugMessage(chalk.magenta(`sending: [${JSON.stringify(message)}]`))
50
- worker.send(message);
28
+ },
29
+ ProcessRequestMessage: async (payload: IIPCMessageProcessorIPCPayload, options: any): Promise<JSONObject> => {
30
+ if (classOptions.processPayload) {
31
+ return classOptions.processPayload(payload, options);
51
32
  } else {
52
- // Received a response (to my request)
53
- this.#ipcMessageManager.ProcessMessage(msg);
33
+ return { };
54
34
  }
35
+ },
36
+ messageReceiverStart: (options: any) => {
37
+ // Receive a message to process from a worker
38
+ const worker = (options.worker as Worker);
39
+ worker.on('message', (payload) => this.#ipcMessageManager.ProcessMessage(payload, { worker }));
40
+ },
41
+ messageReceiverStop: (options: any) => {
42
+ const worker = (options.worker as Worker);
43
+ worker.off('message', (payload) => this.#ipcMessageManager.ProcessMessage(payload, { worker }));
55
44
  }
56
45
  }
46
+ this.#ipcMessageManager = new IPCMessageManager(ipcMessageManagerOptions);
57
47
  }
58
48
 
59
- SendMessage = (payload: JSONObject): Promise<JSONObject> => {
60
- return this.#ipcMessageManager.SendMessage(payload);
49
+ SendMessage = async (payload: JSONObject): Promise<JSONObject> => {
50
+ return this.#ipcMessageManager.SendMessage(payload, { worker: this.#worker });
61
51
  }
62
52
 
63
53
  Start = (worker: Worker) => {
64
- this.#ipcMessageManager.Start();
65
- // Receive a message to process from a worker
66
- worker.on('message', (payload) => this.#processMessage(worker, payload));
54
+ this.#ipcMessageManager.Start({ worker });
55
+ this.#worker = worker;
56
+ }
57
+
58
+ Stop = () => {
59
+ this.#ipcMessageManager.Stop({ worker: this.#worker });
60
+ this.#worker = null;
67
61
  }
68
62
 
69
- Stop = (worker: Worker) => {
70
- worker.off('message', (payload) => this.#processMessage(worker, payload));
71
- this.#ipcMessageManager.Stop();
63
+ get worker(): Worker | null {
64
+ return this.#worker;
72
65
  }
73
66
  }
@@ -9,60 +9,49 @@ export interface IIPCMessageProcessorWorker {
9
9
  logger: ISTSLogger
10
10
  requestResponseMessageTimeout: number
11
11
  namespace: string
12
- processCommand: (payload: IIPCMessageProcessorIPCPayload) => Promise<JSONObject>
12
+ processPayload?: (payload: IIPCMessageProcessorIPCPayload, options: any) => Promise<JSONObject>
13
13
  }
14
14
 
15
15
  export class IPCMessageProcessorWorker {
16
- #options: IIPCMessageProcessorWorker
17
16
  #ipcMessageManager: IPCMessageManager;
18
17
 
19
- constructor(options: IIPCMessageProcessorWorker) {
20
- this.#options = options;
18
+ constructor(classOptions: IIPCMessageProcessorWorker) {
21
19
  const ipcMessageManagerOptions: IPCMessageManagerOptions = {
22
20
  logger: defaultLogger,
23
- requestResponseMessageTimeout: options.requestResponseMessageTimeout,
24
- namespace: options.namespace,
25
- messageSender: (payload: IIPCMessageProcessorIPCPayload) => {
21
+ requestResponseMessageTimeout: classOptions.requestResponseMessageTimeout,
22
+ namespace: classOptions.namespace,
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
24
+ messageSender: (payload: IIPCMessageProcessorIPCPayload, options: any) => {
25
+ // Options not required for sending payloads to the master process
26
26
  (process as any).send(payload);
27
- }
28
- }
29
- this.#ipcMessageManager = new IPCMessageManager(ipcMessageManagerOptions);
30
- }
31
-
32
- // Process a message recieved from the primary thread
33
- #processMessage = async (msg: any) => {
34
- if (msg.header) {
35
- const checkName = `__STS__${this.#options.namespace}__`;
36
- if ((msg.header as string).includes(checkName)) {
37
- const message = (msg as IIPCMessageProcessorIPCPayload);
38
- if (msg.messageType.localeCompare('REQUEST') === 0) {
39
- message.responsePayload = await this.#options.processCommand(message);
40
- message.messageType = 'RESPONSE';
41
- //this.#LogDebugMessage(chalk.magenta(`sending: [${JSON.stringify(message)}]`))
42
- (process as any).send(message);
27
+ },
28
+ ProcessRequestMessage: async (payload: IIPCMessageProcessorIPCPayload, options: any): Promise<JSONObject> => {
29
+ if (classOptions.processPayload) {
30
+ return classOptions.processPayload(payload, options);
43
31
  } else {
44
- // Received a response (to my request)
45
- this.#ipcMessageManager.ProcessMessage(msg);
32
+ return { };
46
33
  }
34
+ },
35
+ messageReceiverStart: (options: any) => {
36
+ // Receive a message response back from the primary thread
37
+ process.on('message', (payload) => this.#ipcMessageManager.ProcessMessage(payload, options));
38
+ },
39
+ messageReceiverStop: (options: any) => {
40
+ process.off('message', (payload) => this.#ipcMessageManager.ProcessMessage(payload, options));
47
41
  }
48
42
  }
43
+ this.#ipcMessageManager = new IPCMessageManager(ipcMessageManagerOptions);
49
44
  }
50
45
 
51
- SendMessage = (payload: JSONObject): Promise<JSONObject> => {
52
- return this.#ipcMessageManager.SendMessage(payload);
46
+ SendMessage = async (payload: JSONObject): Promise<JSONObject> => {
47
+ return this.#ipcMessageManager.SendMessage(payload, { });
53
48
  }
54
49
 
55
50
  Start = () => {
56
- this.#ipcMessageManager.Start();
57
-
58
- // Receive a message response back from the primary thread
59
- //process.on('message', this.#ipcMessageManager.ProcessMessage);
60
- process.on('message', this.#processMessage);
51
+ this.#ipcMessageManager.Start({ });
61
52
  }
62
53
 
63
54
  Stop = () => {
64
- //process.off('message', this.#ipcMessageManager.ProcessMessage);
65
- process.off('message', this.#processMessage);
66
- this.#ipcMessageManager.Stop();
55
+ this.#ipcMessageManager.Stop({ });
67
56
  }
68
57
  }
@@ -3,21 +3,42 @@ import { ServiceConfigOptions } from './appConfig'
3
3
  import { MasterProcessBase } from './..'
4
4
  import { WorkerProcess } from './appWorkerWSS'
5
5
 
6
- import cluster from 'cluster';
6
+ import cluster, { Worker } from 'node:cluster';
7
7
 
8
8
  import { IPCMessageProcessorWorker } from './../ipcMessageProcessorWorker'
9
- import { Sleep, defaultLogger } from '@nsshunt/stsutils';
9
+ import { JSONObject, Sleep, defaultLogger } from '@nsshunt/stsutils';
10
10
 
11
11
  import { IPCMessageProcessorPrimary } from './../ipcMessageProcessorPrimary'
12
12
 
13
13
  import { IIPCMessageProcessorIPCPayload } from './../commonTypes'
14
14
 
15
- import { Worker } from 'node:cluster'
16
-
17
15
  import chalk from 'chalk';
16
+ import { messageStatus } from '@nsshunt/stsobservability';
18
17
 
19
18
  const sleepVal = 0;
20
- const maxLoop = 20000;
19
+ const maxLoop = 100;
20
+
21
+ const zzz = async () => {
22
+ const ipc: IPCMessageProcessorPrimary[] = [ ];
23
+ for (const id in cluster.workers) {
24
+ const worker = cluster.workers[id] as Worker;
25
+ const p1 = new IPCMessageProcessorPrimary({
26
+ logger: defaultLogger,
27
+ namespace: 'zzz'
28
+ })
29
+ p1.Start(cluster.workers[id] as Worker);
30
+ ipc.push(p1);
31
+ }
32
+
33
+ const promArray: Promise<JSONObject>[] = [ ];
34
+ ipc.forEach(v => promArray.push(v.SendMessage({id: v.worker?.id, cmd: 'cmd1'})));
35
+ const retVal = await Promise.all(promArray).catch(error => {
36
+ console.error(chalk.red(` ===>>> Error with promise.all: [${JSON.stringify(error)}]`))
37
+ });
38
+ if (retVal) {
39
+ console.log(chalk.green(JSON.stringify(retVal)));
40
+ }
41
+ }
21
42
 
22
43
  if (cluster.isPrimary) {
23
44
  new MasterProcessBase(ServiceConfigOptions(true, cluster.isPrimary)).SetupServer();
@@ -27,29 +48,27 @@ if (cluster.isPrimary) {
27
48
  const p1 = new IPCMessageProcessorPrimary({
28
49
  logger: defaultLogger,
29
50
  namespace: 'test1',
30
- processCommand: async (payload: IIPCMessageProcessorIPCPayload) => {
51
+ processPayload: async (payload: IIPCMessageProcessorIPCPayload) => {
31
52
  return {
32
53
  msg: `From PRIMARY: [${process.pid}]`,
33
54
  yousent: payload.requestPayload,
34
55
  hello1: `world1`,
35
56
  pid: process.pid
36
57
  };
37
- },
38
- worker: cluster.workers[id] as Worker
58
+ }
39
59
  })
40
60
 
41
61
  const p2 = new IPCMessageProcessorPrimary({
42
62
  logger: defaultLogger,
43
63
  namespace: 'test2',
44
- processCommand: async (payload: IIPCMessageProcessorIPCPayload) => {
64
+ processPayload: async (payload: IIPCMessageProcessorIPCPayload) => {
45
65
  return {
46
66
  msg: `From PRIMARY: [${process.pid}]`,
47
67
  yousent: payload.requestPayload,
48
68
  hello2: `world2`,
49
69
  pid: process.pid
50
70
  };
51
- },
52
- worker: cluster.workers[id] as Worker
71
+ }
53
72
  })
54
73
 
55
74
  p1.Start(cluster.workers[id] as Worker);
@@ -58,13 +77,14 @@ if (cluster.isPrimary) {
58
77
  setTimeout(async () => {
59
78
  for (let i=0; i < maxLoop; i++) {
60
79
  const retVal1 = await p1.SendMessage({
61
- from1: 'text from 1',
62
- loop: i
80
+ from1: 'text from PRIMARY 1',
81
+ loop1: i,
63
82
  });
64
83
  const retVal2 = await p2.SendMessage({
65
- from1: 'text from 2',
66
- loop: i
84
+ from2: 'text from PRIMARY 2',
85
+ loop2: i
67
86
  });
87
+
68
88
  console.log(`[${process.pid}] [${JSON.stringify(retVal1)}]`)
69
89
  console.log(`[${process.pid}] [${JSON.stringify(retVal2)}]`)
70
90
 
@@ -72,6 +92,9 @@ if (cluster.isPrimary) {
72
92
  }
73
93
  }, 1000);
74
94
  }
95
+
96
+ zzz();
97
+
75
98
  }, 1000);
76
99
 
77
100
  } else {
@@ -81,11 +104,11 @@ if (cluster.isPrimary) {
81
104
  logger: defaultLogger,
82
105
  namespace: 'test1',
83
106
  requestResponseMessageTimeout: 2000,
84
- processCommand: async (payload) => {
107
+ processPayload: async (payload) => {
85
108
  return {
86
- msg: `From WORKER: [${process.pid}]`,
109
+ msg1: `From WORKER: [${process.pid}]`,
87
110
  yousent1: payload.requestPayload,
88
- pid: process.pid
111
+ pid1: process.pid
89
112
  }
90
113
  }
91
114
  })
@@ -94,24 +117,57 @@ if (cluster.isPrimary) {
94
117
  logger: defaultLogger,
95
118
  namespace: 'test2',
96
119
  requestResponseMessageTimeout: 2000,
97
- processCommand: async (payload) => {
120
+ processPayload: async (payload) => {
98
121
  return {
99
- msg: `From WORKER: [${process.pid}]`,
122
+ msg2: `From WORKER: [${process.pid}]`,
100
123
  yousent2: payload.requestPayload,
101
- pid: process.pid
124
+ pid2: process.pid
125
+ }
126
+ }
127
+ })
128
+
129
+ const w3 = new IPCMessageProcessorWorker({
130
+ logger: defaultLogger,
131
+ namespace: 'zzz',
132
+ requestResponseMessageTimeout: 2000,
133
+ processPayload: async (payload) => {
134
+ switch (payload.requestPayload.cmd) {
135
+ case 'cmd1' : return {
136
+ msg3: `COMMAND 1 From WORKER: [${process.pid}]`,
137
+ yousent3: payload.requestPayload,
138
+ pid3: process.pid
139
+ }
140
+ break;
141
+ case 'cmd2' :
142
+ return {
143
+ msg3: `COMMAND 2 From WORKER: [${process.pid}]`,
144
+ yousent3: payload.requestPayload,
145
+ pid3: process.pid
146
+ }
147
+ break;
148
+ }
149
+ return {
150
+ msg3: `COMMAND Unknown From WORKER: [${process.pid}]`,
151
+ yousent3: payload.requestPayload,
152
+ pid3: process.pid
102
153
  }
103
154
  }
104
155
  })
105
156
 
106
157
  w1.Start();
107
158
  w2.Start();
159
+ w3.Start();
108
160
 
109
161
  setTimeout(async () => {
110
162
  for (let i=0; i < maxLoop; i++) {
111
- const retVal1 = await w1.SendMessage({hello:`from worker 1: ${i}`});
163
+ const retVal1 = await w1.SendMessage({
164
+ hello1:`from WORKER 1: ${i}`
165
+ });
112
166
  console.log(chalk.blue(` ==> [${process.pid}] [${JSON.stringify(retVal1)}]`));
113
167
 
114
- const retVal2 = await w2.SendMessage({hello:`from worker 2: ${i}`});
168
+ const retVal2 = await w2.SendMessage({
169
+ hello2:`from WORKER 2: ${i}`
170
+ });
115
171
  console.log(chalk.blue(` ==> [${process.pid}] [${JSON.stringify(retVal2)}]`));
116
172
 
117
173
  await Sleep(sleepVal);
@@ -183,7 +183,7 @@ export interface IIPCMessageProcessorWorkerRecord {
183
183
  startTime: number;
184
184
  endTime: number;
185
185
  timeout: NodeJS.Timeout | null;
186
- callBack: (payload: IIPCMessageProcessorIPCPayload) => void;
187
- errorCallBack: (payload: IIPCMessageProcessorIPCPayload) => void;
186
+ callBack: (payload: IIPCMessageProcessorIPCPayload, options: any) => void;
187
+ errorCallBack: (payload: IIPCMessageProcessorIPCPayload, option: any) => void;
188
188
  }
189
189
  //# sourceMappingURL=commonTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commonTypes.d.ts","sourceRoot":"","sources":["../src/commonTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commonTypes.d.ts","sourceRoot":"","sources":["../src/commonTypes.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,11 @@ export interface IPCMessageManagerOptions {
4
4
  logger: ISTSLogger;
5
5
  requestResponseMessageTimeout: number;
6
6
  namespace: string;
7
- messageSender: (payload: IIPCMessageProcessorIPCPayload) => void;
7
+ messageSender: (payload: IIPCMessageProcessorIPCPayload, options: any) => void;
8
+ ProcessRequestMessage: (payload: IIPCMessageProcessorIPCPayload, options: any) => Promise<JSONObject>;
9
+ ProcessResponseMessage?: (payload: IIPCMessageProcessorIPCPayload, options: any) => Promise<boolean>;
10
+ messageReceiverStart: (options: any) => void;
11
+ messageReceiverStop: (options: any) => void;
8
12
  }
9
13
  /**
10
14
  * todo
@@ -15,9 +19,9 @@ export declare class IPCMessageManager {
15
19
  #private;
16
20
  constructor(options: IPCMessageManagerOptions);
17
21
  ReceivedMessageFromMaster(msg: any): void;
18
- SendMessage: (payload: JSONObject) => Promise<JSONObject>;
19
- ProcessMessage: (msg: any) => void;
20
- Start: () => void;
21
- Stop: () => void;
22
+ SendMessage: (payload: JSONObject, options: any) => Promise<JSONObject>;
23
+ Start: (options: any) => void;
24
+ Stop: (options: any) => void;
25
+ ProcessMessage: (msg: any, options: any) => Promise<void>;
22
26
  }
23
27
  //# sourceMappingURL=ipcMessageManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ipcMessageManager.d.ts","sourceRoot":"","sources":["../src/ipcMessageManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAI1D,OAAO,EAAE,8BAA8B,EAAoC,MAAM,eAAe,CAAA;AAEhG,MAAM,WAAW,wBAAwB;IACrC,MAAM,EAAE,UAAU,CAAA;IAClB,6BAA6B,EAAE,MAAM,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,CAAC,OAAO,EAAE,8BAA8B,KAAK,IAAI,CAAA;CACnE;AACD;;;;GAIG;AACH,qBAAa,iBAAiB;;gBAMd,OAAO,EAAE,wBAAwB;IAU7C,yBAAyB,CAAC,GAAG,EAAE,GAAG;IAIlC,WAAW,YAAa,UAAU,KAAG,QAAQ,UAAU,CAAC,CAUvD;IAoCD,cAAc,QAAS,GAAG,UAezB;IAED,KAAK,aAEJ;IAED,IAAI,aAQH;CACJ"}
1
+ {"version":3,"file":"ipcMessageManager.d.ts","sourceRoot":"","sources":["../src/ipcMessageManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAI1D,OAAO,EAAE,8BAA8B,EAAoC,MAAM,eAAe,CAAA;AAEhG,MAAM,WAAW,wBAAwB;IACrC,MAAM,EAAE,UAAU,CAAA;IAClB,6BAA6B,EAAE,MAAM,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,CAAC,OAAO,EAAE,8BAA8B,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,CAAA;IAC9E,qBAAqB,EAAE,CAAC,OAAO,EAAE,8BAA8B,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IACrG,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,8BAA8B,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACpG,oBAAoB,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAA;IAC5C,mBAAmB,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAA;CAC9C;AACD;;;;GAIG;AACH,qBAAa,iBAAiB;;gBAMd,OAAO,EAAE,wBAAwB;IAU7C,yBAAyB,CAAC,GAAG,EAAE,GAAG;IAIlC,WAAW,YAAa,UAAU,WAAW,GAAG,KAAG,QAAQ,UAAU,CAAC,CAUrE;IA2DD,KAAK,YAAa,GAAG,UAGpB;IAED,IAAI,YAAa,GAAG,UAUnB;IAGD,cAAc,QAAe,GAAG,WAAW,GAAG,mBAe7C;CACJ"}
@@ -5,19 +5,14 @@ import { IIPCMessageProcessorIPCPayload } from './commonTypes';
5
5
  export interface IIPCMessageProcessorPrimary {
6
6
  logger: ISTSLogger;
7
7
  namespace: string;
8
- processCommand: (payload: IIPCMessageProcessorIPCPayload) => Promise<JSONObject>;
9
- worker: Worker;
8
+ processPayload?: (payload: IIPCMessageProcessorIPCPayload, options: any) => Promise<JSONObject>;
10
9
  }
11
- /**
12
- * todo
13
- * @typedef {Object} options - todo
14
- * @property {boolean} [wssServer=false] - Create a web socket server on this worker instance
15
- */
16
10
  export declare class IPCMessageProcessorPrimary {
17
11
  #private;
18
- constructor(options: IIPCMessageProcessorPrimary);
12
+ constructor(classOptions: IIPCMessageProcessorPrimary);
19
13
  SendMessage: (payload: JSONObject) => Promise<JSONObject>;
20
14
  Start: (worker: Worker) => void;
21
- Stop: (worker: Worker) => void;
15
+ Stop: () => void;
16
+ get worker(): Worker | null;
22
17
  }
23
18
  //# sourceMappingURL=ipcMessageProcessorPrimary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ipcMessageProcessorPrimary.d.ts","sourceRoot":"","sources":["../src/ipcMessageProcessorPrimary.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAA;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAA;AAI9D,MAAM,WAAW,2BAA2B;IACxC,MAAM,EAAE,UAAU,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,CAAC,OAAO,EAAE,8BAA8B,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IAChF,MAAM,EAAE,MAAM,CAAA;CACjB;AACD;;;;GAIG;AACH,qBAAa,0BAA0B;;gBAKvB,OAAO,EAAE,2BAA2B;IAiChD,WAAW,YAAa,UAAU,KAAG,QAAQ,UAAU,CAAC,CAEvD;IAED,KAAK,WAAY,MAAM,UAItB;IAED,IAAI,WAAY,MAAM,UAGrB;CACJ"}
1
+ {"version":3,"file":"ipcMessageProcessorPrimary.d.ts","sourceRoot":"","sources":["../src/ipcMessageProcessorPrimary.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAA;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAA;AAI9D,MAAM,WAAW,2BAA2B;IACxC,MAAM,EAAE,UAAU,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,8BAA8B,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;CAClG;AAED,qBAAa,0BAA0B;;gBAKvB,YAAY,EAAE,2BAA2B;IA4BrD,WAAW,YAAmB,UAAU,KAAG,QAAQ,UAAU,CAAC,CAE7D;IAED,KAAK,WAAY,MAAM,UAGtB;IAED,IAAI,aAGH;IAED,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,CAE1B;CACJ"}
@@ -4,11 +4,11 @@ export interface IIPCMessageProcessorWorker {
4
4
  logger: ISTSLogger;
5
5
  requestResponseMessageTimeout: number;
6
6
  namespace: string;
7
- processCommand: (payload: IIPCMessageProcessorIPCPayload) => Promise<JSONObject>;
7
+ processPayload?: (payload: IIPCMessageProcessorIPCPayload, options: any) => Promise<JSONObject>;
8
8
  }
9
9
  export declare class IPCMessageProcessorWorker {
10
10
  #private;
11
- constructor(options: IIPCMessageProcessorWorker);
11
+ constructor(classOptions: IIPCMessageProcessorWorker);
12
12
  SendMessage: (payload: JSONObject) => Promise<JSONObject>;
13
13
  Start: () => void;
14
14
  Stop: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"ipcMessageProcessorWorker.d.ts","sourceRoot":"","sources":["../src/ipcMessageProcessorWorker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAA;AAEzE,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAA;AAI9D,MAAM,WAAW,0BAA0B;IACvC,MAAM,EAAE,UAAU,CAAA;IAClB,6BAA6B,EAAE,MAAM,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,CAAC,OAAO,EAAE,8BAA8B,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;CACnF;AAED,qBAAa,yBAAyB;;gBAItB,OAAO,EAAE,0BAA0B;IAgC/C,WAAW,YAAa,UAAU,KAAG,QAAQ,UAAU,CAAC,CAEvD;IAED,KAAK,aAMJ;IAED,IAAI,aAIH;CACJ"}
1
+ {"version":3,"file":"ipcMessageProcessorWorker.d.ts","sourceRoot":"","sources":["../src/ipcMessageProcessorWorker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAA;AAEzE,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAA;AAI9D,MAAM,WAAW,0BAA0B;IACvC,MAAM,EAAE,UAAU,CAAA;IAClB,6BAA6B,EAAE,MAAM,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,8BAA8B,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;CAClG;AAED,qBAAa,yBAAyB;;gBAGtB,YAAY,EAAE,0BAA0B;IA4BpD,WAAW,YAAmB,UAAU,KAAG,QAAQ,UAAU,CAAC,CAE7D;IAED,KAAK,aAEJ;IAED,IAAI,aAEH;CACJ"}