@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.
- package/dist/ipcMessageManager.js +38 -12
- package/dist/ipcMessageManager.js.map +1 -1
- package/dist/ipcMessageProcessorPrimary.js +31 -37
- package/dist/ipcMessageProcessorPrimary.js.map +1 -1
- package/dist/ipcMessageProcessorWorker.js +25 -34
- package/dist/ipcMessageProcessorWorker.js.map +1 -1
- package/dist/testing/app.js +78 -26
- package/dist/testing/app.js.map +1 -1
- package/package.json +1 -1
- package/src/commonTypes.ts +2 -2
- package/src/ipcMessageManager.ts +44 -13
- package/src/ipcMessageProcessorPrimary.ts +33 -40
- package/src/ipcMessageProcessorWorker.ts +24 -35
- package/src/testing/app.ts +79 -23
- package/types/commonTypes.d.ts +2 -2
- package/types/commonTypes.d.ts.map +1 -1
- package/types/ipcMessageManager.d.ts +9 -5
- package/types/ipcMessageManager.d.ts.map +1 -1
- package/types/ipcMessageProcessorPrimary.d.ts +4 -9
- package/types/ipcMessageProcessorPrimary.d.ts.map +1 -1
- package/types/ipcMessageProcessorWorker.d.ts +2 -2
- package/types/ipcMessageProcessorWorker.d.ts.map +1 -1
|
@@ -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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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":";;;;;;AAAA,kDAAkD,CAAE,UAAU;AAC9D,kDAA0B;AAI1B,+BAAoC;
|
|
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
|
-
|
|
16
|
-
|
|
9
|
+
#worker = null;
|
|
10
|
+
constructor(classOptions) {
|
|
17
11
|
const ipcMessageManagerOptions = {
|
|
18
12
|
logger: stsutils_1.defaultLogger,
|
|
19
13
|
requestResponseMessageTimeout: 2000,
|
|
20
|
-
namespace:
|
|
21
|
-
messageSender: (payload) => {
|
|
14
|
+
namespace: classOptions.namespace,
|
|
15
|
+
messageSender: (payload, options) => {
|
|
22
16
|
options.worker.send(payload);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
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
|
-
|
|
47
|
-
|
|
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
|
-
|
|
52
|
-
worker.on('message', (payload) => this.#processMessage(worker, payload));
|
|
42
|
+
this.#ipcMessageManager.Start({ worker });
|
|
43
|
+
this.#worker = worker;
|
|
53
44
|
};
|
|
54
|
-
Stop = (
|
|
55
|
-
|
|
56
|
-
this.#
|
|
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
|
|
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(
|
|
11
|
-
this.#options = options;
|
|
9
|
+
constructor(classOptions) {
|
|
12
10
|
const ipcMessageManagerOptions = {
|
|
13
11
|
logger: stsutils_1.defaultLogger,
|
|
14
|
-
requestResponseMessageTimeout:
|
|
15
|
-
namespace:
|
|
16
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
42
|
-
|
|
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
|
-
|
|
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,
|
|
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"}
|
package/dist/testing/app.js
CHANGED
|
@@ -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
|
|
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 =
|
|
17
|
-
|
|
18
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
48
|
-
p2.Start(
|
|
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
|
-
|
|
70
|
+
from1: 'text from PRIMARY 1',
|
|
71
|
+
loop1: i,
|
|
54
72
|
});
|
|
55
73
|
const retVal2 = await p2.SendMessage({
|
|
56
|
-
|
|
57
|
-
|
|
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,
|
|
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
|
-
|
|
92
|
+
processPayload: async (payload) => {
|
|
74
93
|
return {
|
|
75
|
-
|
|
94
|
+
msg1: `From WORKER: [${process.pid}]`,
|
|
76
95
|
yousent1: payload.requestPayload,
|
|
77
|
-
|
|
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
|
-
|
|
104
|
+
processPayload: async (payload) => {
|
|
86
105
|
return {
|
|
87
|
-
|
|
106
|
+
msg2: `From WORKER: [${process.pid}]`,
|
|
88
107
|
yousent2: payload.requestPayload,
|
|
89
|
-
|
|
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({
|
|
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({
|
|
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
|
}
|
package/dist/testing/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/testing/app.ts"],"names":[],"mappings":";;;;;AAAA,wFAAwF,CAAE,UAAU;AACpG,2CAAkD;AAClD,4BAAwC;AACxC,iDAA8C;AAE9C,
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/testing/app.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/commonTypes.ts
CHANGED
|
@@ -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
|
}
|
package/src/ipcMessageManager.ts
CHANGED
|
@@ -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
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
-
|
|
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(
|
|
27
|
-
this.#options = options;
|
|
28
|
-
|
|
21
|
+
constructor(classOptions: IIPCMessageProcessorPrimary) {
|
|
29
22
|
const ipcMessageManagerOptions: IPCMessageManagerOptions = {
|
|
30
23
|
logger: defaultLogger,
|
|
31
24
|
requestResponseMessageTimeout: 2000,
|
|
32
|
-
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
66
|
-
|
|
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
|
-
|
|
70
|
-
|
|
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
|
-
|
|
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(
|
|
20
|
-
this.#options = options;
|
|
18
|
+
constructor(classOptions: IIPCMessageProcessorWorker) {
|
|
21
19
|
const ipcMessageManagerOptions: IPCMessageManagerOptions = {
|
|
22
20
|
logger: defaultLogger,
|
|
23
|
-
requestResponseMessageTimeout:
|
|
24
|
-
namespace:
|
|
25
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
65
|
-
process.off('message', this.#processMessage);
|
|
66
|
-
this.#ipcMessageManager.Stop();
|
|
55
|
+
this.#ipcMessageManager.Stop({ });
|
|
67
56
|
}
|
|
68
57
|
}
|
package/src/testing/app.ts
CHANGED
|
@@ -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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
80
|
+
from1: 'text from PRIMARY 1',
|
|
81
|
+
loop1: i,
|
|
63
82
|
});
|
|
64
83
|
const retVal2 = await p2.SendMessage({
|
|
65
|
-
|
|
66
|
-
|
|
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
|
-
|
|
107
|
+
processPayload: async (payload) => {
|
|
85
108
|
return {
|
|
86
|
-
|
|
109
|
+
msg1: `From WORKER: [${process.pid}]`,
|
|
87
110
|
yousent1: payload.requestPayload,
|
|
88
|
-
|
|
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
|
-
|
|
120
|
+
processPayload: async (payload) => {
|
|
98
121
|
return {
|
|
99
|
-
|
|
122
|
+
msg2: `From WORKER: [${process.pid}]`,
|
|
100
123
|
yousent2: payload.requestPayload,
|
|
101
|
-
|
|
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({
|
|
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({
|
|
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);
|
package/types/commonTypes.d.ts
CHANGED
|
@@ -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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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;
|
|
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
|
-
|
|
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(
|
|
12
|
+
constructor(classOptions: IIPCMessageProcessorPrimary);
|
|
19
13
|
SendMessage: (payload: JSONObject) => Promise<JSONObject>;
|
|
20
14
|
Start: (worker: Worker) => void;
|
|
21
|
-
Stop: (
|
|
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,
|
|
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
|
-
|
|
7
|
+
processPayload?: (payload: IIPCMessageProcessorIPCPayload, options: any) => Promise<JSONObject>;
|
|
8
8
|
}
|
|
9
9
|
export declare class IPCMessageProcessorWorker {
|
|
10
10
|
#private;
|
|
11
|
-
constructor(
|
|
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;
|
|
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"}
|