@nsshunt/stsrunnerframework 2.0.31 → 2.0.33

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/dist/index.cjs CHANGED
@@ -64,6 +64,8 @@ var eIWMessageCommands = /* @__PURE__ */ function(eIWMessageCommands) {
64
64
  eIWMessageCommands["RunnerStateChange"] = "__STS__RunnerStateChange";
65
65
  eIWMessageCommands["GetRunners"] = "__STS__GetRunners";
66
66
  eIWMessageCommands["GetRunnersResponse"] = "__STS__GetRunnersResponse";
67
+ eIWMessageCommands["PostWorkerMessage"] = "__STS__PostWorkerMessage";
68
+ eIWMessageCommands["PostWorkerMessageResponse"] = "__STS__PostWorkerMessageResponse";
67
69
  return eIWMessageCommands;
68
70
  }({});
69
71
  var IRunnerState = /* @__PURE__ */ function(IRunnerState) {
@@ -1016,6 +1018,25 @@ var AbstractRunnerExecutionWorker = class {
1016
1018
  this.#error(`#PostRunnersToWorkerManager(): [${error}]`);
1017
1019
  }
1018
1020
  };
1021
+ #PostWorkerMessageToWorkerManager = async (messagePayload) => {
1022
+ try {
1023
+ if (this.#collectorCollectorPort) {
1024
+ const response = await this.ProcessGenericWorkerMessage(messagePayload);
1025
+ const message = {
1026
+ command: eIWMessageCommands.PostWorkerMessageResponse,
1027
+ payload: {
1028
+ messageId: messagePayload.payload.messageId,
1029
+ workerId: this.#workerId,
1030
+ response
1031
+ }
1032
+ };
1033
+ this.#collectorCollectorPort.postMessage(message);
1034
+ await (0, _nsshunt_stsutils.Sleep)(0);
1035
+ }
1036
+ } catch (error) {
1037
+ this.#error(`#PostWorkerMessageToWorkerManager(): [${error}]`);
1038
+ }
1039
+ };
1019
1040
  /**
1020
1041
  * Start a runner and, if valid, launch its execution loop.
1021
1042
  *
@@ -1396,6 +1417,9 @@ var AbstractRunnerExecutionWorker = class {
1396
1417
  }
1397
1418
  this.#SendRunnerCommandResponse(eIWMessageCommands.UpdateRunnerResponse, testRunnerTelemetryPayload, result);
1398
1419
  };
1420
+ async ProcessGenericWorkerMessage(messagePayload) {
1421
+ return {};
1422
+ }
1399
1423
  /**
1400
1424
  * Main inbound message dispatcher for this worker runtime.
1401
1425
  *
@@ -1475,6 +1499,10 @@ var AbstractRunnerExecutionWorker = class {
1475
1499
  this.#silly(`ProcessMessage::GetRunners`);
1476
1500
  this.#PostRunnersToWorkerManager(eIWMessageCommands.GetRunners, payloadMessage);
1477
1501
  break;
1502
+ case eIWMessageCommands.PostWorkerMessage:
1503
+ this.#silly(`ProcessMessage::PostWorkerMessage`);
1504
+ this.#PostWorkerMessageToWorkerManager(payloadMessage);
1505
+ break;
1478
1506
  default: this.#warn(`ProcessMessage::default: Invalid payloadMessage.command: [${payloadMessage.command}] - Ignoring`);
1479
1507
  }
1480
1508
  } catch (error) {
@@ -3235,10 +3263,11 @@ var STSMessageBroker = class {
3235
3263
  * @param command Worker-level command to send.
3236
3264
  * @returns Promise resolving with the response payload returned by the worker.
3237
3265
  */
3238
- SendMessageToWorkerForWorkerWithCallBack = async (workerEx, command) => {
3266
+ SendMessageToWorkerForWorkerWithCallBack = async (workerEx, command, data) => {
3239
3267
  return new Promise((resolve, reject) => {
3240
3268
  try {
3241
3269
  const payload = { messageId: this._SetupCallbackMessage(resolve, reject, command) };
3270
+ if (data !== void 0) payload.data = data;
3242
3271
  workerEx.messagePort.postMessage({
3243
3272
  command,
3244
3273
  payload
@@ -6631,6 +6660,27 @@ var STSWorkerManager = class {
6631
6660
  GetNextAvailableWorker = () => {
6632
6661
  return this.#workerRegistry.GetNextAvailableWorker();
6633
6662
  };
6663
+ PostWorkerMessage = async (workerIds, data) => {
6664
+ try {
6665
+ /**
6666
+ * Resolve all live workers.
6667
+ *
6668
+ * Passing `[]` means "all workers" according to the registry convention.
6669
+ */
6670
+ const workersEx = this.#workerRegistry.GetWorkersEx(workerIds);
6671
+ /**
6672
+ * Build a broker request promise for each worker.
6673
+ *
6674
+ * Each worker is asked to return its full current runner list.
6675
+ */
6676
+ const promArray = [];
6677
+ workersEx.forEach((workerEx) => promArray.push(this.#messageBroker.SendMessageToWorkerForWorkerWithCallBack(workerEx, eIWMessageCommands.PostWorkerMessage, data)));
6678
+ return await Promise.all(promArray);
6679
+ } catch (error) {
6680
+ this.options.logger.error(`_SyncWorkerDataFromWorkers(): Error: [${error}]`);
6681
+ throw error;
6682
+ }
6683
+ };
6634
6684
  };
6635
6685
  //#endregion
6636
6686
  //#region node_modules/@nsshunt/stssocketioutils/dist/tiny-emitter-DcZ69ZvJ.js