@nsshunt/stsappframework 3.3.103 → 3.3.105

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 (74) hide show
  1. package/dist/commonTypes.js +11 -15
  2. package/dist/commonTypes.js.map +1 -1
  3. package/dist/controller/stscontrollerbase.js +1 -5
  4. package/dist/controller/stscontrollerbase.js.map +1 -1
  5. package/dist/controller/stslatencycontroller.js +5 -9
  6. package/dist/controller/stslatencycontroller.js.map +1 -1
  7. package/dist/grpc/grpcServer.js +24 -64
  8. package/dist/grpc/grpcServer.js.map +1 -1
  9. package/dist/index.js +15 -31
  10. package/dist/index.js.map +1 -1
  11. package/dist/logger/socketClientLogPublisher.js +26 -33
  12. package/dist/logger/socketClientLogPublisher.js.map +1 -1
  13. package/dist/logger/stsTransportLoggerSocket.js +4 -11
  14. package/dist/logger/stsTransportLoggerSocket.js.map +1 -1
  15. package/dist/logger/stsTransportLoggerWinston.js +2 -9
  16. package/dist/logger/stsTransportLoggerWinston.js.map +1 -1
  17. package/dist/logger/stsTransportWinston.js +3 -11
  18. package/dist/logger/stsTransportWinston.js.map +1 -1
  19. package/dist/middleware/serverNetworkMiddleware.js +28 -35
  20. package/dist/middleware/serverNetworkMiddleware.js.map +1 -1
  21. package/dist/network.js +4 -11
  22. package/dist/network.js.map +1 -1
  23. package/dist/process/masterprocessbase.js +95 -102
  24. package/dist/process/masterprocessbase.js.map +1 -1
  25. package/dist/process/processbase.js +63 -70
  26. package/dist/process/processbase.js.map +1 -1
  27. package/dist/process/serverprocessbase.js +47 -54
  28. package/dist/process/serverprocessbase.js.map +1 -1
  29. package/dist/process/singleprocessbase.js +10 -17
  30. package/dist/process/singleprocessbase.js.map +1 -1
  31. package/dist/process/workerprocessbase.js +26 -33
  32. package/dist/process/workerprocessbase.js.map +1 -1
  33. package/dist/publishertransports/publishTransportUtils.js +10 -14
  34. package/dist/publishertransports/publishTransportUtils.js.map +1 -1
  35. package/dist/route/stslatencyroute.js +4 -8
  36. package/dist/route/stslatencyroute.js.map +1 -1
  37. package/dist/route/stsrouterbase.js +3 -7
  38. package/dist/route/stsrouterbase.js.map +1 -1
  39. package/dist/server.test.js +5 -7
  40. package/dist/server.test.js.map +1 -1
  41. package/dist/stsexpressserver.js +32 -39
  42. package/dist/stsexpressserver.js.map +1 -1
  43. package/dist/validation/errors.js +1 -4
  44. package/dist/validation/errors.js.map +1 -1
  45. package/package.json +21 -20
  46. package/types/controller/stscontrollerbase.d.ts +1 -1
  47. package/types/controller/stscontrollerbase.d.ts.map +1 -1
  48. package/types/controller/stslatencycontroller.d.ts +2 -2
  49. package/types/controller/stslatencycontroller.d.ts.map +1 -1
  50. package/types/grpc/grpcServer.d.ts.map +1 -1
  51. package/types/index.d.ts +15 -15
  52. package/types/index.d.ts.map +1 -1
  53. package/types/logger/stsTransportLoggerWinston.d.ts +1 -1
  54. package/types/logger/stsTransportLoggerWinston.d.ts.map +1 -1
  55. package/types/middleware/serverNetworkMiddleware.d.ts +3 -2
  56. package/types/middleware/serverNetworkMiddleware.d.ts.map +1 -1
  57. package/types/process/masterprocessbase.d.ts +3 -3
  58. package/types/process/masterprocessbase.d.ts.map +1 -1
  59. package/types/process/processbase.d.ts +2 -3
  60. package/types/process/processbase.d.ts.map +1 -1
  61. package/types/process/serverprocessbase.d.ts +3 -3
  62. package/types/process/serverprocessbase.d.ts.map +1 -1
  63. package/types/process/singleprocessbase.d.ts +2 -2
  64. package/types/process/singleprocessbase.d.ts.map +1 -1
  65. package/types/process/workerprocessbase.d.ts +3 -3
  66. package/types/process/workerprocessbase.d.ts.map +1 -1
  67. package/types/publishertransports/publishTransportUtils.d.ts +1 -1
  68. package/types/publishertransports/publishTransportUtils.d.ts.map +1 -1
  69. package/types/route/stslatencyroute.d.ts +2 -2
  70. package/types/route/stslatencyroute.d.ts.map +1 -1
  71. package/types/route/stsrouterbase.d.ts +1 -1
  72. package/types/route/stsrouterbase.d.ts.map +1 -1
  73. package/types/stsexpressserver.d.ts +1 -1
  74. package/types/stsexpressserver.d.ts.map +1 -1
@@ -1,33 +1,27 @@
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.MasterProcessBase = void 0;
7
1
  /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
8
- const node_fs_1 = __importDefault(require("node:fs"));
9
- const systeminformation_1 = __importDefault(require("systeminformation")); // https://systeminformation.io/
10
- const axios_1 = __importDefault(require("axios"));
11
- const node_cluster_1 = __importDefault(require("node:cluster"));
12
- const chalk_1 = __importDefault(require("chalk"));
13
- const express_1 = __importDefault(require("express"));
14
- const cluster_adapter_1 = require("@socket.io/cluster-adapter");
15
- const node_https_1 = require("node:https");
16
- const node_http_1 = require("node:http");
17
- const prom_client_1 = require("prom-client");
18
- const stsconfig_1 = require("@nsshunt/stsconfig");
19
- const stsobservability_1 = require("@nsshunt/stsobservability");
20
- const processbase_1 = require("./processbase");
21
- const commonTypes_1 = require("./../commonTypes");
22
- const stsTransportLoggerWinston_1 = require("./../logger/stsTransportLoggerWinston");
23
- const stsutils_1 = require("@nsshunt/stsutils");
24
- const node_http_2 = __importDefault(require("node:http"));
25
- const node_https_2 = __importDefault(require("node:https"));
2
+ import fs from "node:fs";
3
+ import si from 'systeminformation'; // https://systeminformation.io/
4
+ import axios from 'axios';
5
+ import cluster from 'node:cluster';
6
+ import chalk from 'chalk';
7
+ import express from 'express';
8
+ import { setupPrimary } from '@socket.io/cluster-adapter';
9
+ import { createServer as createServerHttps } from 'node:https';
10
+ import { createServer } from 'node:http';
11
+ import { AggregatorRegistry } from 'prom-client';
12
+ import { goptions } from '@nsshunt/stsconfig';
13
+ import { Gauge, GaugeTypes } from '@nsshunt/stsobservability';
14
+ import { ProcessBase } from './processbase.js';
15
+ import { IPCMessageCommand } from './../commonTypes.js';
16
+ import { STSTransportLoggerWinston } from './../logger/stsTransportLoggerWinston.js';
17
+ import { Sleep, STSAxiosConfig, createAgentManager } from '@nsshunt/stsutils';
18
+ import http from 'node:http';
19
+ import https from 'node:https';
26
20
  //import { GetFirstNetworkInterface } from './network';
27
- class MasterProcessBase extends processbase_1.ProcessBase {
21
+ export class MasterProcessBase extends ProcessBase {
28
22
  //static WORKER_MESSAGE_EVENT = 'sts_worker_message_event';
29
- #masterProcessExitTime = stsconfig_1.goptions.masterProcessExitTime;
30
- #childProcessExitTime = stsconfig_1.goptions.childProcessExitTime;
23
+ #masterProcessExitTime = goptions.masterProcessExitTime;
24
+ #childProcessExitTime = goptions.childProcessExitTime;
31
25
  #siValueObject = {
32
26
  currentLoad: 'currentLoad'
33
27
  };
@@ -41,20 +35,20 @@ class MasterProcessBase extends processbase_1.ProcessBase {
41
35
  #agentManager;
42
36
  constructor(options) {
43
37
  super(options);
44
- this.#agentManager = (0, stsutils_1.createAgentManager)({
38
+ this.#agentManager = createAgentManager({
45
39
  agentOptions: {
46
40
  keepAlive: false, // Use basic defaults. This agent will not use keep-alive.
47
- maxFreeSockets: stsconfig_1.goptions.maxFreeSockets,
48
- maxSockets: stsconfig_1.goptions.maxSockets,
49
- maxTotalSockets: stsconfig_1.goptions.maxTotalSockets,
50
- timeout: stsconfig_1.goptions.timeout,
51
- rejectUnauthorized: stsconfig_1.goptions.isProduction // Allows self-signed certificates if non-production
41
+ maxFreeSockets: goptions.maxFreeSockets,
42
+ maxSockets: goptions.maxSockets,
43
+ maxTotalSockets: goptions.maxTotalSockets,
44
+ timeout: goptions.timeout,
45
+ rejectUnauthorized: goptions.isProduction // Allows self-signed certificates if non-production
52
46
  },
53
47
  httpAgentFactory(options) {
54
- return new node_http_2.default.Agent(options);
48
+ return new http.Agent(options);
55
49
  },
56
50
  httpsAgentFactory(options) {
57
- return new node_https_2.default.Agent(options);
51
+ return new https.Agent(options);
58
52
  }
59
53
  });
60
54
  }
@@ -66,8 +60,8 @@ class MasterProcessBase extends processbase_1.ProcessBase {
66
60
  }
67
61
  CollectAdditionalTelemetry() {
68
62
  try {
69
- systeminformation_1.default.get(this.#siValueObject).then(data => {
70
- this.UpdateInstrument(stsobservability_1.Gauge.CPU_SYSTEM_LOAD_GAUGE, {
63
+ si.get(this.#siValueObject).then(data => {
64
+ this.UpdateInstrument(Gauge.CPU_SYSTEM_LOAD_GAUGE, {
71
65
  val: data.currentLoad.currentLoad
72
66
  });
73
67
  });
@@ -77,9 +71,9 @@ class MasterProcessBase extends processbase_1.ProcessBase {
77
71
  }
78
72
  GetAdditionalInstruments() {
79
73
  return [
80
- [stsobservability_1.Gauge.CPU_SYSTEM_LOAD_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE, {
81
- interval: stsconfig_1.goptions.instrumentationObservationInterval,
82
- sampleSize: stsconfig_1.goptions.instrumentationTimeWindow
74
+ [Gauge.CPU_SYSTEM_LOAD_GAUGE, GaugeTypes.INSTRUMENT_GAUGE, {
75
+ interval: goptions.instrumentationObservationInterval,
76
+ sampleSize: goptions.instrumentationTimeWindow
83
77
  }]
84
78
  ];
85
79
  }
@@ -96,10 +90,10 @@ class MasterProcessBase extends processbase_1.ProcessBase {
96
90
  }
97
91
  }
98
92
  #InitCluster = () => {
99
- node_cluster_1.default.on('listening', (worker, address) => {
93
+ cluster.on('listening', (worker, address) => {
100
94
  this.emit('clusterListening', worker, address);
101
95
  let allListening = true;
102
- for (const worker of Object.values(node_cluster_1.default.workers)) {
96
+ for (const worker of Object.values(cluster.workers)) {
103
97
  if (worker?.isConnected) {
104
98
  allListening = false;
105
99
  break;
@@ -113,20 +107,20 @@ class MasterProcessBase extends processbase_1.ProcessBase {
113
107
  };
114
108
  // https://github.com/siimon/prom-client/blob/master/example/cluster.js
115
109
  #SetupPrometheusForMaster = () => {
116
- this.#metricsServer = (0, express_1.default)();
117
- this.#aggregatorRegistry = new prom_client_1.AggregatorRegistry();
118
- switch (stsconfig_1.goptions.STSServerType) {
110
+ this.#metricsServer = express();
111
+ this.#aggregatorRegistry = new AggregatorRegistry();
112
+ switch (goptions.STSServerType) {
119
113
  case 'EXPRESS_TLS':
120
114
  {
121
115
  const options = {
122
- key: node_fs_1.default.readFileSync(this.options.httpsServerKeyPath),
123
- cert: node_fs_1.default.readFileSync(this.options.httpsServerCertificatePath)
116
+ key: fs.readFileSync(this.options.httpsServerKeyPath),
117
+ cert: fs.readFileSync(this.options.httpsServerCertificatePath)
124
118
  };
125
- this.#httpServer = (0, node_https_1.createServer)(options, this.#metricsServer);
119
+ this.#httpServer = createServerHttps(options, this.#metricsServer);
126
120
  }
127
121
  break;
128
122
  case 'EXPRESS': {
129
- this.#httpServer = (0, node_http_1.createServer)(this.#metricsServer);
123
+ this.#httpServer = createServer(this.#metricsServer);
130
124
  }
131
125
  }
132
126
  //this.#httpServer.maxConnections = 50;
@@ -169,20 +163,20 @@ class MasterProcessBase extends processbase_1.ProcessBase {
169
163
  // We use port rather than hostport becuase this test going outside the service and comes back in as a regular client
170
164
  const url = `${this.options.endpoint}:${this.options.port}${this.options.apiRoot}/latency`;
171
165
  try {
172
- retVal = await (0, axios_1.default)(new stsutils_1.STSAxiosConfig(url, 'get')
166
+ retVal = await axios(new STSAxiosConfig(url, 'get')
173
167
  .withDefaultHeaders()
174
168
  .withAgentManager(this.#agentManager).config);
175
169
  if (retVal.status !== 200) {
176
- this.#LogDebugMessage(chalk_1.default.magenta(`Error (MasterProcessBase:#GetLatency): Invalid response from server: [${retVal.status}]`));
170
+ this.#LogDebugMessage(chalk.magenta(`Error (MasterProcessBase:#GetLatency): Invalid response from server: [${retVal.status}]`));
177
171
  return null;
178
172
  }
179
173
  return retVal.data.detail;
180
174
  }
181
175
  catch (error) {
182
- this.#LogDebugMessage(chalk_1.default.red(`Error (MasterProcessBase:#GetLatency:catch): [${error}]`));
183
- this.#LogDebugMessage(chalk_1.default.red(` url: [${url}]`));
176
+ this.#LogDebugMessage(chalk.red(`Error (MasterProcessBase:#GetLatency:catch): [${error}]`));
177
+ this.#LogDebugMessage(chalk.red(` url: [${url}]`));
184
178
  if (error.response && error.response.data) {
185
- this.#LogDebugMessage(chalk_1.default.red(` Details: [${JSON.stringify(error.response.data)}]`));
179
+ this.#LogDebugMessage(chalk.red(` Details: [${JSON.stringify(error.response.data)}]`));
186
180
  }
187
181
  }
188
182
  };
@@ -192,10 +186,10 @@ class MasterProcessBase extends processbase_1.ProcessBase {
192
186
  const end = process.hrtime(start);
193
187
  timeInMs = (end[0] * 1000000000 + end[1]) / 1000000;
194
188
  timeInMs = parseFloat(timeInMs.toFixed(4));
195
- this.UpdateInstrument(stsobservability_1.Gauge.LATENCY_HISTOGRAM_GAUGE, {
189
+ this.UpdateInstrument(Gauge.LATENCY_HISTOGRAM_GAUGE, {
196
190
  val: timeInMs
197
191
  });
198
- this.UpdateInstrument(stsobservability_1.Gauge.LATENCY_GAUGE, {
192
+ this.UpdateInstrument(Gauge.LATENCY_GAUGE, {
199
193
  val: timeInMs
200
194
  });
201
195
  };
@@ -207,41 +201,41 @@ class MasterProcessBase extends processbase_1.ProcessBase {
207
201
  };
208
202
  #_KillWorker = (id, signal, killProcess) => {
209
203
  try {
210
- if (node_cluster_1.default.workers && node_cluster_1.default.workers[id]) {
211
- const worker = node_cluster_1.default.workers[id];
204
+ if (cluster.workers && cluster.workers[id]) {
205
+ const worker = cluster.workers[id];
212
206
  if (worker.process) {
213
- this.LogInfoMessage(chalk_1.default.grey(`Sending terminate message `) + chalk_1.default.yellow(`(initiated by ${signal})`) + chalk_1.default.grey(` for worker PID: ${worker.process.pid}`));
207
+ this.LogInfoMessage(chalk.grey(`Sending terminate message `) + chalk.yellow(`(initiated by ${signal})`) + chalk.grey(` for worker PID: ${worker.process.pid}`));
214
208
  const command = (killProcess ? 'TerminateAndKill' : 'Terminate');
215
209
  try {
216
210
  worker.send({ command });
217
211
  //worker.process.send( { command } );
218
212
  }
219
213
  catch (error) {
220
- this.LogInfoMessage(chalk_1.default.red(`MasterProcessBase:#_KillWorker() (1): id: [${id}], signal: [${signal}], killProcess: [${killProcess}], error: [${error}]`));
214
+ this.LogInfoMessage(chalk.red(`MasterProcessBase:#_KillWorker() (1): id: [${id}], signal: [${signal}], killProcess: [${killProcess}], error: [${error}]`));
221
215
  return false;
222
216
  }
223
217
  return true;
224
218
  }
225
219
  else {
226
- this.LogInfoMessage(chalk_1.default.red(`MasterProcessBase:#_KillWorker(): Could not kill worker with id: [${id}]. The process does not exists`));
220
+ this.LogInfoMessage(chalk.red(`MasterProcessBase:#_KillWorker(): Could not kill worker with id: [${id}]. The process does not exists`));
227
221
  return false;
228
222
  }
229
223
  }
230
224
  else {
231
- this.LogInfoMessage(chalk_1.default.red(`MasterProcessBase:#_KillWorker(): Could not kill worker with id: [${id}]. Worker does not exist within workers collection`));
225
+ this.LogInfoMessage(chalk.red(`MasterProcessBase:#_KillWorker(): Could not kill worker with id: [${id}]. Worker does not exist within workers collection`));
232
226
  return false;
233
227
  }
234
228
  }
235
229
  catch (error) {
236
- this.LogInfoMessage(chalk_1.default.red(`MasterProcessBase:#_KillWorker() (2): id: [${id}], signal: [${signal}], killProcess: [${killProcess}], error: [${error}]`));
230
+ this.LogInfoMessage(chalk.red(`MasterProcessBase:#_KillWorker() (2): id: [${id}], signal: [${signal}], killProcess: [${killProcess}], error: [${error}]`));
237
231
  return false;
238
232
  }
239
233
  };
240
234
  KillWorker = (id, signal = "SIGTERM", options, killProcess, allowKillAll) => {
241
235
  try {
242
- if (allowKillAll || Object.keys(node_cluster_1.default.workers).length > 1) {
236
+ if (allowKillAll || Object.keys(cluster.workers).length > 1) {
243
237
  if (id.localeCompare('0') === 0) {
244
- const keys = Object.keys(node_cluster_1.default.workers);
238
+ const keys = Object.keys(cluster.workers);
245
239
  for (let i = keys.length - 1; i > 0; i--) {
246
240
  // Kill the last one added (assumed node keeps them in order)
247
241
  id = keys[i];
@@ -261,12 +255,12 @@ class MasterProcessBase extends processbase_1.ProcessBase {
261
255
  }
262
256
  }
263
257
  else {
264
- this.LogInfoMessage(chalk_1.default.yellow(`MasterProcessBase:KillWorker(): Not allowed to kill the last worker process.`));
258
+ this.LogInfoMessage(chalk.yellow(`MasterProcessBase:KillWorker(): Not allowed to kill the last worker process.`));
265
259
  return false;
266
260
  }
267
261
  }
268
262
  catch (error) {
269
- this.LogInfoMessage(chalk_1.default.red(`MasterProcessBase:KillWorker(): id: [${id}], signal: [${signal}], killProcess: [${killProcess}], error: [${error}]`));
263
+ this.LogInfoMessage(chalk.red(`MasterProcessBase:KillWorker(): id: [${id}], signal: [${signal}], killProcess: [${killProcess}], error: [${error}]`));
270
264
  return false;
271
265
  }
272
266
  };
@@ -277,7 +271,7 @@ class MasterProcessBase extends processbase_1.ProcessBase {
277
271
  const keepOneAlive = (keepOne ? keepOne : false);
278
272
  let skippedFirst = false;
279
273
  const sortedIdList = [];
280
- for (const id in node_cluster_1.default.workers) {
274
+ for (const id in cluster.workers) {
281
275
  sortedIdList.push(parseInt(id));
282
276
  }
283
277
  sortedIdList.sort().forEach((id) => {
@@ -290,12 +284,12 @@ class MasterProcessBase extends processbase_1.ProcessBase {
290
284
  });
291
285
  }
292
286
  catch (error) {
293
- this.LogInfoMessage(chalk_1.default.red(`${logPrefix} signal: [${signal}], keepOne: [${keepOne}], error: [${error}]`));
287
+ this.LogInfoMessage(chalk.red(`${logPrefix} signal: [${signal}], keepOne: [${keepOne}], error: [${error}]`));
294
288
  }
295
289
  };
296
290
  #UpdateWorkersInstrument = () => {
297
291
  setTimeout(() => {
298
- this.UpdateInstrument(stsobservability_1.Gauge.CORE_COUNT_GAUGE, {
292
+ this.UpdateInstrument(Gauge.CORE_COUNT_GAUGE, {
299
293
  val: this.#workers
300
294
  });
301
295
  }, 2000);
@@ -312,9 +306,9 @@ class MasterProcessBase extends processbase_1.ProcessBase {
312
306
  };
313
307
  AddWorker = (options) => {
314
308
  const workerId = this.#SpawnWorker(options);
315
- this.#LogDebugMessage(chalk_1.default.yellow(` Spawned worker with id: [${workerId}]`));
309
+ this.#LogDebugMessage(chalk.yellow(` Spawned worker with id: [${workerId}]`));
316
310
  if (options) {
317
- this.#LogDebugMessage(chalk_1.default.yellow(` Options: [${JSON.stringify(options)}]`));
311
+ this.#LogDebugMessage(chalk.yellow(` Options: [${JSON.stringify(options)}]`));
318
312
  }
319
313
  return workerId;
320
314
  };
@@ -322,26 +316,26 @@ class MasterProcessBase extends processbase_1.ProcessBase {
322
316
  return this.#processIPCCommand(iPCMessagePayload);
323
317
  }
324
318
  #processIPCCommand = async (iPCMessagePayload) => {
325
- this.#LogDebugMessage(chalk_1.default.yellow(` Processing message command: [${iPCMessagePayload.command}]`));
319
+ this.#LogDebugMessage(chalk.yellow(` Processing message command: [${iPCMessagePayload.command}]`));
326
320
  switch (iPCMessagePayload.command) {
327
- case commonTypes_1.IPCMessageCommand.AddWorker: {
321
+ case IPCMessageCommand.AddWorker: {
328
322
  const workerId = this.AddWorker(iPCMessagePayload.requestDetail?.options);
329
323
  iPCMessagePayload.responseDetail = {
330
324
  workerId
331
325
  };
332
326
  return iPCMessagePayload;
333
327
  }
334
- case commonTypes_1.IPCMessageCommand.DeleteWorker: {
328
+ case IPCMessageCommand.DeleteWorker: {
335
329
  const workerId = iPCMessagePayload.requestDetail?.workerId;
336
330
  const workerKilled = this.KillWorker(workerId, "SIGTERM", iPCMessagePayload.requestDetail?.options, true, false);
337
- this.#LogDebugMessage(chalk_1.default.yellow(` Killed worker with id: [${workerId}]`));
331
+ this.#LogDebugMessage(chalk.yellow(` Killed worker with id: [${workerId}]`));
338
332
  iPCMessagePayload.responseDetail = {
339
333
  workerId,
340
334
  workerKilled
341
335
  };
342
336
  return iPCMessagePayload;
343
337
  }
344
- case commonTypes_1.IPCMessageCommand.GetConfig: {
338
+ case IPCMessageCommand.GetConfig: {
345
339
  const safeOptions = { ...this.options };
346
340
  delete safeOptions.logger;
347
341
  delete safeOptions.publisherLogger;
@@ -354,7 +348,7 @@ class MasterProcessBase extends processbase_1.ProcessBase {
354
348
  }
355
349
  default: {
356
350
  const errorMessage = `Could not process command: [${iPCMessagePayload.command}].`;
357
- this.#LogDebugMessage(chalk_1.default.red(` ${errorMessage}`));
351
+ this.#LogDebugMessage(chalk.red(` ${errorMessage}`));
358
352
  throw new Error(errorMessage);
359
353
  }
360
354
  }
@@ -381,7 +375,7 @@ class MasterProcessBase extends processbase_1.ProcessBase {
381
375
  });
382
376
  }
383
377
  */
384
- const worker = node_cluster_1.default.fork(workerEnv);
378
+ const worker = cluster.fork(workerEnv);
385
379
  this.IncWorkers();
386
380
  worker.on('exit', (code, signal) => {
387
381
  this.emit('workerExit', code, signal);
@@ -411,14 +405,14 @@ class MasterProcessBase extends processbase_1.ProcessBase {
411
405
  });
412
406
  worker.on('error', (error) => {
413
407
  this.emit('workerError', error);
414
- const message = chalk_1.default.red(`#SpawnWorker():worker.on('error'): Error: [${error}]`);
408
+ const message = chalk.red(`#SpawnWorker():worker.on('error'): Error: [${error}]`);
415
409
  this.LogErrorMessage(message);
416
410
  });
417
411
  this.emit('workerAdded', worker.id);
418
412
  return worker.id;
419
413
  };
420
414
  MasterStarted() {
421
- const transport = new stsTransportLoggerWinston_1.STSTransportLoggerWinston({
415
+ const transport = new STSTransportLoggerWinston({
422
416
  stsApp: this
423
417
  });
424
418
  setTimeout(() => {
@@ -440,12 +434,12 @@ class MasterProcessBase extends processbase_1.ProcessBase {
440
434
  }
441
435
  else {
442
436
  this.LogInfoMessage(`Using nodejs cluster mode for socket.io cluster management`);
443
- (0, cluster_adapter_1.setupPrimary)();
437
+ setupPrimary();
444
438
  }
445
439
  }
446
440
  // https://nodejs.org/api/cluster.html#clustersetupprimarysettings
447
441
  if (this.options.workerExec) {
448
- node_cluster_1.default.setupPrimary({
442
+ cluster.setupPrimary({
449
443
  exec: this.options.workerExec,
450
444
  silent: true,
451
445
  //@@
@@ -453,7 +447,7 @@ class MasterProcessBase extends processbase_1.ProcessBase {
453
447
  });
454
448
  }
455
449
  else {
456
- node_cluster_1.default.setupPrimary({
450
+ cluster.setupPrimary({
457
451
  serialization: "advanced",
458
452
  });
459
453
  }
@@ -465,33 +459,33 @@ class MasterProcessBase extends processbase_1.ProcessBase {
465
459
  this.#SpawnWorker();
466
460
  }
467
461
  this.#InitCluster();
468
- node_cluster_1.default.on('listening', (worker, address) => {
462
+ cluster.on('listening', (worker, address) => {
469
463
  this.emit('clusterListening', worker, address);
470
464
  this.LogInfoMessage(`Worker process ${worker.process.pid} is listening at address: ${JSON.stringify(address)}`);
471
465
  });
472
466
  //Setting up lifecycle event listeners for worker processes
473
- node_cluster_1.default.on('online', worker => {
467
+ cluster.on('online', worker => {
474
468
  this.emit('clusterOnline', worker);
475
469
  this.LogInfoMessage(`Worker process ${worker.process.pid} is online`);
476
470
  });
477
- node_cluster_1.default.on('exit', (worker, code, signal) => {
471
+ cluster.on('exit', (worker, code, signal) => {
478
472
  this.emit('clusterExit', worker, code, signal);
479
473
  if ((code !== null && code === 0) || (signal === 'SIGINT')) {
480
- this.LogInfoMessage(chalk_1.default.green(`Process ${worker.process.pid} terminated gracefully with code: ${code}, signal: ${signal}`));
474
+ this.LogInfoMessage(chalk.green(`Process ${worker.process.pid} terminated gracefully with code: ${code}, signal: ${signal}`));
481
475
  this.DecWorkers();
482
476
  }
483
477
  else if ((code !== null && code === 15) || (signal === 'SIGTERM')) {
484
478
  this.DecWorkers();
485
- this.LogInfoMessage(chalk_1.default.red(`Process ${worker.process.pid} terminated with code: ${code}, signal: ${signal}`));
479
+ this.LogInfoMessage(chalk.red(`Process ${worker.process.pid} terminated with code: ${code}, signal: ${signal}`));
486
480
  }
487
481
  else {
488
482
  this.DecWorkers();
489
- this.LogInfoMessage(chalk_1.default.red(`worker ${worker.process.pid} died`));
490
- this.LogInfoMessage(chalk_1.default.red(`code: ${code}`));
491
- this.LogInfoMessage(chalk_1.default.red(`signal: ${signal}`));
492
- this.LogInfoMessage(chalk_1.default.red('process terminated in an error state'));
493
- if (stsconfig_1.goptions.respawnOnFail === true) {
494
- this.LogInfoMessage(chalk_1.default.magenta(`Attemping to respawn worker`));
483
+ this.LogInfoMessage(chalk.red(`worker ${worker.process.pid} died`));
484
+ this.LogInfoMessage(chalk.red(`code: ${code}`));
485
+ this.LogInfoMessage(chalk.red(`signal: ${signal}`));
486
+ this.LogInfoMessage(chalk.red('process terminated in an error state'));
487
+ if (goptions.respawnOnFail === true) {
488
+ this.LogInfoMessage(chalk.magenta(`Attemping to respawn worker`));
495
489
  this.#SpawnWorker();
496
490
  }
497
491
  }
@@ -536,7 +530,7 @@ class MasterProcessBase extends processbase_1.ProcessBase {
536
530
  this.KillWorkers(signal);
537
531
  await this.TerminateDatabase();
538
532
  this.TerminateInstrumentController();
539
- await (0, stsutils_1.Sleep)(1000);
533
+ await Sleep(1000);
540
534
  this.ProcessExit(this.#childProcessExitTime + this.#masterProcessExitTime);
541
535
  }
542
536
  else {
@@ -554,10 +548,10 @@ class MasterProcessBase extends processbase_1.ProcessBase {
554
548
  process.on('exit', (code) => {
555
549
  this.emit('processExit', code);
556
550
  if (code === 0) {
557
- this.LogInfoMessage(chalk_1.default.green(`Main Process: ${process.pid} terminated gracefully with code: ${code}`));
551
+ this.LogInfoMessage(chalk.green(`Main Process: ${process.pid} terminated gracefully with code: ${code}`));
558
552
  }
559
553
  else {
560
- this.LogInfoMessage(chalk_1.default.red(`Main Process: ${process.pid} terminated with code: ${code}`));
554
+ this.LogInfoMessage(chalk.red(`Main Process: ${process.pid} terminated with code: ${code}`));
561
555
  }
562
556
  });
563
557
  if (this.options.useLatency) {
@@ -566,14 +560,14 @@ class MasterProcessBase extends processbase_1.ProcessBase {
566
560
  }, 1000).unref();
567
561
  }
568
562
  this.MasterStarted();
569
- this.LogInfoMessage(chalk_1.default.green(`Master process:${process.pid} started`));
563
+ this.LogInfoMessage(chalk.green(`Master process:${process.pid} started`));
570
564
  };
571
565
  BroadcastDataToWorkers = (command, data) => {
572
566
  try {
573
- for (const id in node_cluster_1.default.workers) {
567
+ for (const id in cluster.workers) {
574
568
  try {
575
569
  //@@this.LogInfoMessage(chalk.gray(`Sending message to worker PID: ${cluster.workers[id].process.pid}`));
576
- node_cluster_1.default.workers[id].process.send({ command: command, data: data });
570
+ cluster.workers[id].process.send({ command: command, data: data });
577
571
  }
578
572
  catch (error) {
579
573
  //@@this.LogInfoMessage(error);
@@ -585,5 +579,4 @@ class MasterProcessBase extends processbase_1.ProcessBase {
585
579
  }
586
580
  };
587
581
  }
588
- exports.MasterProcessBase = MasterProcessBase;
589
582
  //# sourceMappingURL=masterprocessbase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"masterprocessbase.js","sourceRoot":"","sources":["../../src/process/masterprocessbase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"masterprocessbase.js","sourceRoot":"","sources":["../../src/process/masterprocessbase.ts"],"names":[],"mappings":"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"}