1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const __1 = require("..");
|
4 | function launch(handler) {
|
5 | return __1.launch(endpointForParentProcess(), handler);
|
6 | }
|
7 | exports.launch = launch;
|
8 | function connect(child) {
|
9 | return __1.connect(endpointForChildProcess(child));
|
10 | }
|
11 | exports.connect = connect;
|
12 | function endpointForParentProcess() {
|
13 | if (!process || !process.send) {
|
14 | throw new Error('`endpointForParentProcess` is only available in processes resulting from a fork() call');
|
15 | }
|
16 | return {
|
17 | onMessage: callback => process.addListener('message', callback),
|
18 | sendMessage: message => process.send(message),
|
19 | disconnect: () => {
|
20 | if (process.connected) {
|
21 | process.disconnect();
|
22 | }
|
23 | }
|
24 | };
|
25 | }
|
26 | exports.endpointForParentProcess = endpointForParentProcess;
|
27 | function endpointForChildProcess(child) {
|
28 | return {
|
29 | onMessage: callback => child.addListener('message', callback),
|
30 | sendMessage: message => child.send(message),
|
31 | disconnect: () => {
|
32 | if (child.connected) {
|
33 | child.disconnect();
|
34 | }
|
35 | }
|
36 | };
|
37 | }
|
38 | exports.endpointForChildProcess = endpointForChildProcess;
|