@3fv/electron-utility-process-manager 1.0.1 → 1.0.3
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/README.md +39 -26
- package/examples/lib-examples/simple/simple-main.js +9 -2
- package/examples/lib-examples/simple/simple-main.js.map +1 -1
- package/examples/lib-examples/simple/simple-renderer.js +1 -1
- package/examples/lib-examples/simple/simple-renderer.js.map +1 -1
- package/lib/cjs/common/clients.d.ts +5 -1
- package/lib/cjs/common/clients.js +11 -11
- package/lib/cjs/common/clients.js.map +1 -1
- package/lib/cjs/common/guards.d.ts +1 -1
- package/lib/cjs/common/index.d.ts +3 -3
- package/lib/cjs/common/index.js +3 -3
- package/lib/cjs/common/index.js.map +1 -1
- package/lib/cjs/common/types.d.ts +23 -1
- package/lib/cjs/common/types.js.map +1 -1
- package/lib/cjs/index.d.ts +2 -2
- package/lib/cjs/index.js +2 -2
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/main/UPMMainService.d.ts +111 -29
- package/lib/cjs/main/UPMMainService.js +250 -136
- package/lib/cjs/main/UPMMainService.js.map +1 -1
- package/lib/cjs/main/UPMMainServiceManager.d.ts +4 -3
- package/lib/cjs/main/UPMMainServiceManager.js +6 -6
- package/lib/cjs/main/UPMMainServiceManager.js.map +1 -1
- package/lib/cjs/main/index.d.ts +2 -2
- package/lib/cjs/main/index.js +2 -2
- package/lib/cjs/main/index.js.map +1 -1
- package/lib/cjs/node/UPMNodeProcess.d.ts +4 -4
- package/lib/cjs/node/UPMNodeProcess.js +1 -1
- package/lib/cjs/node/UPMNodeProcess.js.map +1 -1
- package/lib/cjs/node/index.d.ts +2 -2
- package/lib/cjs/node/index.js +3 -3
- package/lib/cjs/node/index.js.map +1 -1
- package/lib/cjs/renderer/UPMRendererClientFactory.d.ts +1 -1
- package/lib/cjs/renderer/UPMRendererClientFactory.js +1 -1
- package/lib/cjs/renderer/UPMRendererClientFactory.js.map +1 -1
- package/lib/cjs/renderer/index.d.ts +2 -2
- package/lib/cjs/renderer/index.js +3 -3
- package/lib/cjs/renderer/index.js.map +1 -1
- package/lib/mjs/common/clients.d.ts +5 -1
- package/lib/mjs/common/clients.js +3 -3
- package/lib/mjs/common/clients.js.map +1 -1
- package/lib/mjs/common/guards.d.ts +1 -1
- package/lib/mjs/common/index.d.ts +3 -3
- package/lib/mjs/common/index.js +3 -3
- package/lib/mjs/common/index.js.map +1 -1
- package/lib/mjs/common/types.d.ts +23 -1
- package/lib/mjs/common/types.js.map +1 -1
- package/lib/mjs/index.d.ts +2 -2
- package/lib/mjs/index.js +2 -2
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/main/UPMMainService.d.ts +111 -29
- package/lib/mjs/main/UPMMainService.js +252 -138
- package/lib/mjs/main/UPMMainService.js.map +1 -1
- package/lib/mjs/main/UPMMainServiceManager.d.ts +4 -3
- package/lib/mjs/main/UPMMainServiceManager.js +6 -6
- package/lib/mjs/main/UPMMainServiceManager.js.map +1 -1
- package/lib/mjs/main/index.d.ts +2 -2
- package/lib/mjs/main/index.js +2 -2
- package/lib/mjs/main/index.js.map +1 -1
- package/lib/mjs/node/UPMNodeProcess.d.ts +4 -4
- package/lib/mjs/node/UPMNodeProcess.js +1 -1
- package/lib/mjs/node/UPMNodeProcess.js.map +1 -1
- package/lib/mjs/node/index.d.ts +2 -2
- package/lib/mjs/node/index.js +2 -2
- package/lib/mjs/node/index.js.map +1 -1
- package/lib/mjs/renderer/UPMRendererClientFactory.d.ts +1 -1
- package/lib/mjs/renderer/UPMRendererClientFactory.js +1 -1
- package/lib/mjs/renderer/UPMRendererClientFactory.js.map +1 -1
- package/lib/mjs/renderer/index.d.ts +2 -2
- package/lib/mjs/renderer/index.js +2 -2
- package/lib/mjs/renderer/index.js.map +1 -1
- package/package.json +10 -3
|
@@ -31,67 +31,65 @@ const electron_1 = require("electron");
|
|
|
31
31
|
const guard_1 = require("@3fv/guard");
|
|
32
32
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
33
33
|
const deferred_1 = require("@3fv/deferred");
|
|
34
|
-
const UPM = __importStar(require("../common"));
|
|
34
|
+
const UPM = __importStar(require("../common/index.js"));
|
|
35
35
|
const lodash_1 = require("lodash");
|
|
36
36
|
const tracer_1 = __importDefault(require("tracer"));
|
|
37
|
+
const prelude_ts_1 = require("@3fv/prelude-ts");
|
|
38
|
+
const ts_pattern_1 = require("ts-pattern");
|
|
37
39
|
const log = tracer_1.default.colorConsole();
|
|
38
40
|
const isNotEmpty = (0, lodash_1.negate)(lodash_1.isEmpty);
|
|
41
|
+
/**
|
|
42
|
+
* Contains & Manages a `Utility/Process`
|
|
43
|
+
* providing simplified messaging & event
|
|
44
|
+
* propagation.
|
|
45
|
+
*/
|
|
39
46
|
class UPMMainService {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
this.childProcess_.off("exit", exitListener);
|
|
54
|
-
this.childProcess_.on("message", this.onMessage.bind(this));
|
|
55
|
-
deferred.resolve(this);
|
|
56
|
-
};
|
|
57
|
-
this.childProcess_ = electron_1.utilityProcess
|
|
58
|
-
.fork(this.entryFile, [], {
|
|
59
|
-
serviceName: this.serviceName,
|
|
60
|
-
env: Object.assign(Object.assign({}, process.env), { IN_CHILD_PROCESS: "true", APP_NAME: electron_1.app.name })
|
|
61
|
-
})
|
|
62
|
-
.on("spawn", spawnListener)
|
|
63
|
-
.on("exit", exitListener);
|
|
64
|
-
await deferred.promise;
|
|
65
|
-
}
|
|
66
|
-
catch (err) {
|
|
67
|
-
deferred.reject(err);
|
|
68
|
-
}
|
|
69
|
-
return deferred.promise;
|
|
47
|
+
/**
|
|
48
|
+
* Send an event as `fire-and-forget`
|
|
49
|
+
*
|
|
50
|
+
* @param data
|
|
51
|
+
* @param port
|
|
52
|
+
*/
|
|
53
|
+
sendEvent(data, port = this.childProcess_) {
|
|
54
|
+
const messageId = this.generateMessageId();
|
|
55
|
+
const payload = {
|
|
56
|
+
channel: UPM.IPCChannel.UPMServiceMessage,
|
|
57
|
+
payload: { messageId, eventData: data, kind: UPM.MessageKind.Event }
|
|
58
|
+
};
|
|
59
|
+
port.postMessage(payload);
|
|
70
60
|
}
|
|
71
|
-
|
|
72
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Send request
|
|
63
|
+
*
|
|
64
|
+
* @param type
|
|
65
|
+
* @param args
|
|
66
|
+
*/
|
|
67
|
+
async executeRequest(type, ...args) {
|
|
68
|
+
(0, guard_1.assert)(!!this.childProcess_, "The process is not running");
|
|
69
|
+
const messageId = this.generateMessageId(), pending = {
|
|
70
|
+
deferred: new deferred_1.Deferred(),
|
|
71
|
+
messageId,
|
|
72
|
+
timeoutId: setTimeout(() => this.removePendingMessage(messageId), UPM.Defaults.RequestTimeout)
|
|
73
|
+
};
|
|
74
|
+
this.pendingMessages_.set(messageId, pending);
|
|
75
|
+
const payload = {
|
|
76
|
+
channel: UPM.IPCChannel.UPMServiceMessage,
|
|
77
|
+
payload: { type, messageId, args, kind: UPM.MessageKind.Request }
|
|
78
|
+
};
|
|
79
|
+
this.childProcess_.postMessage(payload);
|
|
73
80
|
try {
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
if (pending.deferred.isSettled()) {
|
|
80
|
-
log.error(`Already settled record ${messageId}`);
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
this.removePendingMessage(messageId);
|
|
84
|
-
if (!!error) {
|
|
85
|
-
log.error(error);
|
|
86
|
-
pending.deferred.reject(new Error(error));
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
pending.deferred.resolve(result);
|
|
81
|
+
const result = await pending.deferred.promise;
|
|
82
|
+
log.debug(`Completed utility request (messageId=${messageId})`);
|
|
83
|
+
return result;
|
|
90
84
|
}
|
|
91
85
|
catch (err) {
|
|
92
|
-
log.error(`Failed
|
|
86
|
+
log.error(`Failed utility request (messageId=${messageId})`, err);
|
|
87
|
+
throw err;
|
|
93
88
|
}
|
|
94
89
|
}
|
|
90
|
+
close() {
|
|
91
|
+
log.warn("Close has no effect when called via the main process");
|
|
92
|
+
}
|
|
95
93
|
/**
|
|
96
94
|
* Resolves when ready
|
|
97
95
|
*
|
|
@@ -115,6 +113,22 @@ class UPMMainService {
|
|
|
115
113
|
}
|
|
116
114
|
});
|
|
117
115
|
}
|
|
116
|
+
onServiceExit(code) {
|
|
117
|
+
log.warn(`Service Exit (code=${code})`);
|
|
118
|
+
let deferred = this.killDeferred_;
|
|
119
|
+
if (deferred) {
|
|
120
|
+
if (!deferred.isSettled()) {
|
|
121
|
+
deferred.resolve(code);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
log.warn(`kill deferred is already settled (code=${code})`);
|
|
125
|
+
}
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
this.killDeferred_ = deferred_1.Deferred.resolve(code);
|
|
129
|
+
this.cancelAllPendingMessages();
|
|
130
|
+
this.removeAllMessageChannels();
|
|
131
|
+
}
|
|
118
132
|
/**
|
|
119
133
|
* Returned client side port (for Renderer)
|
|
120
134
|
* @param clientId
|
|
@@ -127,8 +141,7 @@ class UPMMainService {
|
|
|
127
141
|
try {
|
|
128
142
|
this.childProcess_.postMessage({
|
|
129
143
|
message: {
|
|
130
|
-
channel: UPM.IPCChannel.UPMServiceNewClient,
|
|
131
|
-
payload: { clientId }
|
|
144
|
+
channel: UPM.IPCChannel.UPMServiceNewClient, payload: { clientId }
|
|
132
145
|
}
|
|
133
146
|
}, [port1]);
|
|
134
147
|
}
|
|
@@ -144,97 +157,162 @@ class UPMMainService {
|
|
|
144
157
|
* (useful to avoid congestion on default child_process channel)
|
|
145
158
|
*
|
|
146
159
|
* @param {string} clientId
|
|
147
|
-
* @returns {UPM.MessagePortClient
|
|
160
|
+
* @returns {UPM.MessagePortClient}
|
|
148
161
|
*/
|
|
149
162
|
createMainClient(clientId) {
|
|
150
163
|
return new UPM.MessagePortClient(clientId, this.createMessageChannel(clientId));
|
|
151
164
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
165
|
+
/**
|
|
166
|
+
* Service is still in a healthy/running/runnable state
|
|
167
|
+
*/
|
|
168
|
+
get isRunning() {
|
|
169
|
+
return !this.killDeferred_;
|
|
155
170
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
;
|
|
161
|
-
[channel.port1, channel.port2].forEach(p => (0, guard_1.getValue)(() => p.close()));
|
|
171
|
+
/**
|
|
172
|
+
* Stop the service (kill)
|
|
173
|
+
*/
|
|
174
|
+
async stop() {
|
|
175
|
+
await this.kill();
|
|
162
176
|
}
|
|
163
|
-
|
|
164
|
-
|
|
177
|
+
/**
|
|
178
|
+
* Resource management & cleanup
|
|
179
|
+
*/
|
|
180
|
+
async [Symbol.asyncDispose]() {
|
|
181
|
+
await this.stop();
|
|
165
182
|
}
|
|
166
183
|
/**
|
|
167
|
-
*
|
|
184
|
+
* Initialize the service
|
|
168
185
|
*
|
|
169
|
-
* @
|
|
170
|
-
* @param port
|
|
186
|
+
* @private
|
|
171
187
|
*/
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
188
|
+
async init() {
|
|
189
|
+
let deferred = this.readyDeferred_;
|
|
190
|
+
if (deferred) {
|
|
191
|
+
return deferred.promise;
|
|
192
|
+
}
|
|
193
|
+
deferred = this.readyDeferred_ = new deferred_1.Deferred();
|
|
194
|
+
try {
|
|
195
|
+
const exitListener = (code) => {
|
|
196
|
+
if (code !== 0) {
|
|
197
|
+
deferred.reject(new Error(`process exited with code ${code} upon starting`));
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
const spawnListener = async () => {
|
|
201
|
+
this.childProcess_.off("exit", exitListener);
|
|
202
|
+
this.childProcess_.on("exit", this.onServiceExit.bind(this));
|
|
203
|
+
this.childProcess_.on("message", this.onMessage.bind(this));
|
|
204
|
+
deferred.resolve(this);
|
|
205
|
+
};
|
|
206
|
+
// BUILD ADDITIONAL FORK OPTIONS
|
|
207
|
+
const childProcessOptions = (0, prelude_ts_1.asOption)(this.config_.inspect)
|
|
208
|
+
.filter(it => it !== false)
|
|
209
|
+
.map(it => ({
|
|
210
|
+
execArgv: [
|
|
211
|
+
(0, ts_pattern_1.match)(it)
|
|
212
|
+
.when(guard_1.isNumber, port => `--inspect=${port}`)
|
|
213
|
+
.otherwise(({ port, break: shouldBreak }) => {
|
|
214
|
+
const ext = shouldBreak ? "-brk" : "";
|
|
215
|
+
return `--inspect${ext}=${port}`;
|
|
216
|
+
})
|
|
217
|
+
]
|
|
218
|
+
}))
|
|
219
|
+
.getOrElse({});
|
|
220
|
+
// FORK
|
|
221
|
+
this.childProcess_ = electron_1.utilityProcess
|
|
222
|
+
.fork(this.entryFile, [], Object.assign(Object.assign({}, childProcessOptions), { serviceName: this.serviceName, env: Object.assign(Object.assign({}, process.env), { IN_CHILD_PROCESS: "true", APP_NAME: electron_1.app.name }) }))
|
|
223
|
+
.on("spawn", spawnListener)
|
|
224
|
+
.on("exit", exitListener);
|
|
225
|
+
await deferred.promise;
|
|
226
|
+
}
|
|
227
|
+
catch (err) {
|
|
228
|
+
deferred.reject(err);
|
|
229
|
+
}
|
|
230
|
+
return deferred.promise;
|
|
179
231
|
}
|
|
180
232
|
/**
|
|
181
|
-
*
|
|
233
|
+
* OnMessage really only handles `results` from
|
|
234
|
+
* `executeRequest(...)`; this may be expanded in
|
|
235
|
+
* the future
|
|
182
236
|
*
|
|
183
|
-
* @param
|
|
184
|
-
* @
|
|
237
|
+
* @param payload
|
|
238
|
+
* @private
|
|
185
239
|
*/
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
const messageId = this.generateMessageId(), pending = {
|
|
189
|
-
deferred: new deferred_1.Deferred(),
|
|
190
|
-
messageId,
|
|
191
|
-
timeoutId: setTimeout(() => this.removePendingMessage(messageId), UPM.Defaults.RequestTimeout)
|
|
192
|
-
};
|
|
193
|
-
this.pendingMessages_.set(messageId, pending);
|
|
194
|
-
const payload = {
|
|
195
|
-
channel: UPM.IPCChannel.UPMServiceMessage,
|
|
196
|
-
payload: { type, messageId, args, kind: UPM.MessageKind.Request }
|
|
197
|
-
};
|
|
198
|
-
this.childProcess_.postMessage(payload);
|
|
240
|
+
onMessage(payload) {
|
|
241
|
+
const { messageId, result, error } = payload;
|
|
199
242
|
try {
|
|
200
|
-
const
|
|
201
|
-
|
|
202
|
-
|
|
243
|
+
const pending = this.pendingMessages_.get(messageId);
|
|
244
|
+
if (!pending) {
|
|
245
|
+
log.info(`Unable to find pending record ${messageId}`);
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
if (pending.deferred.isSettled()) {
|
|
249
|
+
log.error(`Already settled record ${messageId}`);
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
this.removePendingMessage(messageId);
|
|
253
|
+
if (!!error) {
|
|
254
|
+
log.error(error);
|
|
255
|
+
pending.deferred.reject(new Error(error));
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
pending.deferred.resolve(result);
|
|
203
259
|
}
|
|
204
260
|
catch (err) {
|
|
205
|
-
log.error(`Failed
|
|
206
|
-
throw err;
|
|
261
|
+
log.error(`Failed to handle message`, err);
|
|
207
262
|
}
|
|
208
263
|
}
|
|
209
|
-
|
|
210
|
-
|
|
264
|
+
/**
|
|
265
|
+
* This handler is currently unused, but
|
|
266
|
+
* could be attached to a `MessagePort.on('close')`
|
|
267
|
+
* event
|
|
268
|
+
*
|
|
269
|
+
* @param id
|
|
270
|
+
* @param channel
|
|
271
|
+
* @private
|
|
272
|
+
*/
|
|
273
|
+
// noinspection JSUnusedLocalSymbols
|
|
274
|
+
onPortClose(id, channel) {
|
|
275
|
+
log.info(`main side of message channel(id=${id}) closed`);
|
|
276
|
+
this.closeMessageChannel(id, channel);
|
|
211
277
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
278
|
+
/**
|
|
279
|
+
* Close a message channel
|
|
280
|
+
*
|
|
281
|
+
* @param id
|
|
282
|
+
* @param channel
|
|
283
|
+
* @private
|
|
284
|
+
*/
|
|
285
|
+
closeMessageChannel(id, channel) {
|
|
286
|
+
if (this.messageChannels_.has(id)) {
|
|
287
|
+
this.messageChannels_.delete(id);
|
|
219
288
|
}
|
|
220
|
-
|
|
221
|
-
|
|
289
|
+
Array(channel.port1, channel.port2)
|
|
290
|
+
.forEach(p => {
|
|
291
|
+
(0, guard_1.getValue)(() => p.close());
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Kill the service
|
|
296
|
+
*
|
|
297
|
+
* @private
|
|
298
|
+
*/
|
|
299
|
+
async kill() {
|
|
300
|
+
var _a, _b;
|
|
301
|
+
if (!this.readyDeferred_ ||
|
|
302
|
+
!this.readyDeferred_.isSettled() ||
|
|
303
|
+
!this.childProcess_ ||
|
|
304
|
+
this.killDeferred_) {
|
|
305
|
+
log.error("Service is not ready OR the process is not running");
|
|
306
|
+
// noinspection ES6MissingAwait
|
|
307
|
+
return (_b = (_a = this.killDeferred_) === null || _a === void 0 ? void 0 : _a.promise) !== null && _b !== void 0 ? _b : Promise.resolve(0);
|
|
222
308
|
}
|
|
309
|
+
let killDeferred = this.killDeferred_ = new deferred_1.Deferred();
|
|
310
|
+
// GET THE PROCESS
|
|
223
311
|
const process = this.childProcess_;
|
|
224
|
-
|
|
225
|
-
log.error("The process is not running");
|
|
226
|
-
return 0;
|
|
227
|
-
}
|
|
312
|
+
// CANCEL ALL PENDING MESSAGES & REMOVE ALL CHANNELS
|
|
228
313
|
this.cancelAllPendingMessages();
|
|
229
314
|
this.removeAllMessageChannels();
|
|
230
|
-
killDeferred = this.killDeferred_ = new deferred_1.Deferred();
|
|
231
315
|
try {
|
|
232
|
-
process.once("exit", (code) => {
|
|
233
|
-
if (code !== 0) {
|
|
234
|
-
log.error(`Process exited with code ${code} upon stopping`);
|
|
235
|
-
}
|
|
236
|
-
killDeferred.resolve(code);
|
|
237
|
-
});
|
|
238
316
|
process.kill();
|
|
239
317
|
}
|
|
240
318
|
catch (err) {
|
|
@@ -243,32 +321,33 @@ class UPMMainService {
|
|
|
243
321
|
}
|
|
244
322
|
return await killDeferred.promise;
|
|
245
323
|
}
|
|
324
|
+
/**
|
|
325
|
+
* Close all message channels
|
|
326
|
+
*
|
|
327
|
+
* @private
|
|
328
|
+
*/
|
|
246
329
|
removeAllMessageChannels() {
|
|
247
330
|
for (const [id, channel] of [...this.messageChannels_.entries()]) {
|
|
248
331
|
this.closeMessageChannel(id, channel);
|
|
249
332
|
}
|
|
250
333
|
}
|
|
334
|
+
/**
|
|
335
|
+
* Remove all pending messages
|
|
336
|
+
*
|
|
337
|
+
* @private
|
|
338
|
+
*/
|
|
251
339
|
cancelAllPendingMessages() {
|
|
252
340
|
for (const key of [...this.pendingMessages_.keys()]) {
|
|
253
341
|
this.removePendingMessage(key);
|
|
254
342
|
}
|
|
255
343
|
}
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
this.pendingMessages_ = new Map();
|
|
264
|
-
this.messageChannels_ = new Map();
|
|
265
|
-
//super()
|
|
266
|
-
(0, guard_1.assert)((0, guard_1.isString)(entryFile) && isNotEmpty(entryFile) && fs_extra_1.default.existsSync(entryFile), `entry file must be provided (${entryFile})`);
|
|
267
|
-
this.config_ = Object.assign({}, options);
|
|
268
|
-
this.init().catch(err => {
|
|
269
|
-
log.error(`Failed to init utility process`, err);
|
|
270
|
-
});
|
|
271
|
-
}
|
|
344
|
+
/**
|
|
345
|
+
* Remove a pending message from the queue,
|
|
346
|
+
* whether settled or not
|
|
347
|
+
*
|
|
348
|
+
* @param messageId
|
|
349
|
+
* @private
|
|
350
|
+
*/
|
|
272
351
|
removePendingMessage(messageId) {
|
|
273
352
|
const pending = this.pendingMessages_.get(messageId);
|
|
274
353
|
if (!pending) {
|
|
@@ -280,11 +359,46 @@ class UPMMainService {
|
|
|
280
359
|
}
|
|
281
360
|
this.pendingMessages_.delete(messageId);
|
|
282
361
|
}
|
|
362
|
+
/**
|
|
363
|
+
* Generate next message id
|
|
364
|
+
*
|
|
365
|
+
* @private
|
|
366
|
+
*/
|
|
283
367
|
generateMessageId() {
|
|
284
|
-
return this.
|
|
368
|
+
return this.messageIdSeq_++;
|
|
285
369
|
}
|
|
286
|
-
|
|
287
|
-
|
|
370
|
+
/**
|
|
371
|
+
* Construct a new service
|
|
372
|
+
*
|
|
373
|
+
* @param serviceName
|
|
374
|
+
* @param entryFile
|
|
375
|
+
* @param options
|
|
376
|
+
*/
|
|
377
|
+
constructor(serviceName, entryFile, options = {}) {
|
|
378
|
+
this.serviceName = serviceName;
|
|
379
|
+
this.entryFile = entryFile;
|
|
380
|
+
/**
|
|
381
|
+
* As this container/wrapper implements
|
|
382
|
+
* `IMessageClient`, it needs to provide
|
|
383
|
+
* a `clientId`, which is constant in the
|
|
384
|
+
* main process
|
|
385
|
+
*/
|
|
386
|
+
this.clientId = "main";
|
|
387
|
+
this.readyDeferred_ = null;
|
|
388
|
+
this.killDeferred_ = null;
|
|
389
|
+
this.messageIdSeq_ = 0;
|
|
390
|
+
this.childProcess_ = null;
|
|
391
|
+
this.pendingMessages_ = new Map();
|
|
392
|
+
this.messageChannels_ = new Map();
|
|
393
|
+
(0, guard_1.assert)((0, guard_1.isString)(entryFile) &&
|
|
394
|
+
isNotEmpty(entryFile) &&
|
|
395
|
+
fs_extra_1.default.existsSync(entryFile), `entry file must be provided (${entryFile})`);
|
|
396
|
+
this.config_ = (0, lodash_1.defaults)(Object.assign({}, options), {
|
|
397
|
+
serviceName, inspect: false
|
|
398
|
+
});
|
|
399
|
+
this.init().catch(err => {
|
|
400
|
+
log.error(`Failed to init utility process`, err);
|
|
401
|
+
});
|
|
288
402
|
}
|
|
289
403
|
}
|
|
290
404
|
exports.UPMMainService = UPMMainService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UPMMainService.js","sourceRoot":"","sources":["../../../src/main/UPMMainService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"UPMMainService.js","sourceRoot":"","sources":["../../../src/main/UPMMainService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as UPM from "../common";
|
|
2
|
-
import UPMMainService from "./UPMMainService";
|
|
1
|
+
import * as UPM from "../common/index.js";
|
|
2
|
+
import UPMMainService from "./UPMMainService.js";
|
|
3
3
|
export declare class UPMMainServiceManager {
|
|
4
4
|
private services_;
|
|
5
5
|
/**
|
|
@@ -30,8 +30,9 @@ export declare class UPMMainServiceManager {
|
|
|
30
30
|
*
|
|
31
31
|
* @param serviceName
|
|
32
32
|
* @param entryFile
|
|
33
|
+
* @param options
|
|
33
34
|
*/
|
|
34
|
-
createService<ReqMap extends UPM.MessageRequestMap, Type extends UPM.MessageRequestNames<ReqMap> = UPM.MessageRequestNames<ReqMap>>(serviceName: string, entryFile: string): Promise<UPMMainService<ReqMap, Type>>;
|
|
35
|
+
createService<ReqMap extends UPM.MessageRequestMap, Type extends UPM.MessageRequestNames<ReqMap> = UPM.MessageRequestNames<ReqMap>>(serviceName: string, entryFile: string, options?: UPM.CreateServiceOptions): Promise<UPMMainService<ReqMap, Type>>;
|
|
35
36
|
/**
|
|
36
37
|
* Destroy a specific service
|
|
37
38
|
*
|
|
@@ -29,8 +29,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
exports.upmMainServiceManager = exports.UPMMainServiceManager = void 0;
|
|
30
30
|
const electron_1 = require("electron");
|
|
31
31
|
const guard_1 = require("@3fv/guard");
|
|
32
|
-
const UPM = __importStar(require("../common"));
|
|
33
|
-
const
|
|
32
|
+
const UPM = __importStar(require("../common/index.js"));
|
|
33
|
+
const UPMMainService_js_1 = __importDefault(require("./UPMMainService.js"));
|
|
34
34
|
const tracer_1 = __importDefault(require("tracer"));
|
|
35
35
|
const log = tracer_1.default.colorConsole();
|
|
36
36
|
class UPMMainServiceManager {
|
|
@@ -108,12 +108,12 @@ class UPMMainServiceManager {
|
|
|
108
108
|
*
|
|
109
109
|
* @param serviceName
|
|
110
110
|
* @param entryFile
|
|
111
|
+
* @param options
|
|
111
112
|
*/
|
|
112
|
-
async createService(serviceName, entryFile) {
|
|
113
|
+
async createService(serviceName, entryFile, options = {}) {
|
|
114
|
+
var _a;
|
|
113
115
|
(0, guard_1.assert)(!this.services_.has(serviceName), `utility process with id (${serviceName}) is already registered`);
|
|
114
|
-
const proc = new
|
|
115
|
-
serviceName
|
|
116
|
-
});
|
|
116
|
+
const proc = new UPMMainService_js_1.default(serviceName, entryFile, Object.assign(Object.assign({}, options), { serviceName: (_a = options.serviceName) !== null && _a !== void 0 ? _a : serviceName }));
|
|
117
117
|
this.services_.set(serviceName, proc);
|
|
118
118
|
try {
|
|
119
119
|
await proc.whenReady();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UPMMainServiceManager.js","sourceRoot":"","sources":["../../../src/main/UPMMainServiceManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAkC;AAClC,sCAA6C;AAE7C
|
|
1
|
+
{"version":3,"file":"UPMMainServiceManager.js","sourceRoot":"","sources":["../../../src/main/UPMMainServiceManager.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/main/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from "./UPMMainServiceManager";
|
|
2
|
-
export * from "./UPMMainService";
|
|
1
|
+
export * from "./UPMMainServiceManager.js";
|
|
2
|
+
export * from "./UPMMainService.js";
|
package/lib/cjs/main/index.js
CHANGED
|
@@ -14,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./UPMMainServiceManager"), exports);
|
|
18
|
-
__exportStar(require("./UPMMainService"), exports);
|
|
17
|
+
__exportStar(require("./UPMMainServiceManager.js"), exports);
|
|
18
|
+
__exportStar(require("./UPMMainService.js"), exports);
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/main/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/main/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA0C;AAC1C,sDAAmC"}
|