eimer 0.1.1 → 0.1.2
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/cjs/transports/EimerUtilityProcessTransport.d.ts +5 -2
- package/dist/cjs/transports/EimerUtilityProcessTransport.d.ts.map +1 -1
- package/dist/cjs/transports/EimerUtilityProcessTransport.js +29 -1
- package/dist/cjs/transports/EimerUtilityProcessTransport.js.map +1 -1
- package/dist/esm/transports/EimerUtilityProcessTransport.js +29 -1
- package/dist/esm/transports/EimerUtilityProcessTransport.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,8 +4,11 @@ import { EimerMessagePortTransport, EimerMessagePortTransportDependencies, Eimer
|
|
|
4
4
|
* - `utilityProcess` (Electron.UtilityProcess) in the main process
|
|
5
5
|
* - `process.parentPort` (Electron.ParentPort) inside the utility process
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* Note that the two sides are *not* symmetric at runtime: `UtilityProcess`
|
|
8
|
+
* delivers the raw message to its `'message'` listener, while `ParentPort`
|
|
9
|
+
* wraps it in a `MessageEvent` (`{ data, ports }`). `EimerUtilityProcessTransport`
|
|
10
|
+
* unwraps that `MessageEvent` shape internally so callers can use this type on
|
|
11
|
+
* both ends without worrying about the discrepancy.
|
|
9
12
|
*/
|
|
10
13
|
export interface UtilityProcessPort {
|
|
11
14
|
postMessage(message: any): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EimerUtilityProcessTransport.d.ts","sourceRoot":"","sources":["../../../src/transports/EimerUtilityProcessTransport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EimerUtilityProcessTransport.d.ts","sourceRoot":"","sources":["../../../src/transports/EimerUtilityProcessTransport.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,qCAAqC,EAAE,gCAAgC,EAAe,MAAM,6BAA6B,CAAC;AAE9J;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IAC/B,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IAChC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5D,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,mCAAoC,SAAQ,gCAAgC;CAAG;AAEhG,MAAM,WAAW,wCAAyC,SAAQ,qCAAqC;CAAG;AA+B1G;;;;;;;GAOG;AACH,qBAAa,4BAA6B,SAAQ,yBAAyB;gBAC3D,IAAI,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,mCAAmC,EAAE,YAAY,CAAC,EAAE,wCAAwC;CAG/I"}
|
|
@@ -1,7 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EimerUtilityProcessTransport = void 0;
|
|
4
|
+
const EimerMessage_1 = require("../eimer/EimerMessage");
|
|
4
5
|
const EimerMessagePortTransport_1 = require("./EimerMessagePortTransport");
|
|
6
|
+
/**
|
|
7
|
+
* Wraps a `UtilityProcessPort` so that `'message'` listeners always receive the
|
|
8
|
+
* raw eimer message, regardless of whether the underlying port delivers it directly
|
|
9
|
+
* (`Electron.UtilityProcess`) or wrapped in a `MessageEvent` (`Electron.ParentPort`).
|
|
10
|
+
*/
|
|
11
|
+
class MessageEventUnwrappingPort {
|
|
12
|
+
constructor(port) {
|
|
13
|
+
this.port = port;
|
|
14
|
+
}
|
|
15
|
+
postMessage(message) {
|
|
16
|
+
this.port.postMessage(message);
|
|
17
|
+
}
|
|
18
|
+
on(event, handler) {
|
|
19
|
+
this.port.on(event, (received) => {
|
|
20
|
+
if (!EimerMessage_1.EimerMessage.isEimerMessage(received) && received !== null && typeof received === 'object' && 'data' in received) {
|
|
21
|
+
handler(received.data);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
handler(received);
|
|
25
|
+
});
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
off(event, handler) {
|
|
29
|
+
this.port.off?.(event, handler);
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
5
33
|
/**
|
|
6
34
|
* Eimer UtilityProcess Transport
|
|
7
35
|
*
|
|
@@ -12,7 +40,7 @@ const EimerMessagePortTransport_1 = require("./EimerMessagePortTransport");
|
|
|
12
40
|
*/
|
|
13
41
|
class EimerUtilityProcessTransport extends EimerMessagePortTransport_1.EimerMessagePortTransport {
|
|
14
42
|
constructor(port, options, dependencies) {
|
|
15
|
-
super(port, { ...options, logModuleName: options?.logModuleName ?? 'EimerUtilityProcessTransport' }, dependencies);
|
|
43
|
+
super(new MessageEventUnwrappingPort(port), { ...options, logModuleName: options?.logModuleName ?? 'EimerUtilityProcessTransport' }, dependencies);
|
|
16
44
|
}
|
|
17
45
|
}
|
|
18
46
|
exports.EimerUtilityProcessTransport = EimerUtilityProcessTransport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EimerUtilityProcessTransport.js","sourceRoot":"","sources":["../../../src/transports/EimerUtilityProcessTransport.ts"],"names":[],"mappings":";;;AAAA,2EAA8J;
|
|
1
|
+
{"version":3,"file":"EimerUtilityProcessTransport.js","sourceRoot":"","sources":["../../../src/transports/EimerUtilityProcessTransport.ts"],"names":[],"mappings":";;;AAAA,wDAAqD;AAErD,2EAA8J;AAuB9J;;;;GAIG;AACH,MAAM,0BAA0B;IAC5B,YAA6B,IAAwB;QAAxB,SAAI,GAAJ,IAAI,CAAoB;IAAG,CAAC;IAEzD,WAAW,CAAC,OAAY;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,EAAE,CAAC,KAAgB,EAAE,OAA+B;QAChD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,QAAa,EAAQ,EAAE;YACxC,IAAI,CAAC,2BAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;gBACpH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvB,OAAO;YACX,CAAC;YACD,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,KAAgB,EAAE,OAA+B;QACjD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED;;;;;;;GAOG;AACH,MAAa,4BAA6B,SAAQ,qDAAyB;IACvE,YAAY,IAAwB,EAAE,OAA6C,EAAE,YAAuD;QACxI,KAAK,CAAC,IAAI,0BAA0B,CAAC,IAAI,CAAgB,EAAE,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,8BAA8B,EAAE,EAAE,YAAY,CAAC,CAAC;IACtK,CAAC;CACJ;AAJD,oEAIC"}
|
|
@@ -1,4 +1,32 @@
|
|
|
1
|
+
import { EimerMessage } from '../eimer/EimerMessage';
|
|
1
2
|
import { EimerMessagePortTransport } from './EimerMessagePortTransport';
|
|
3
|
+
/**
|
|
4
|
+
* Wraps a `UtilityProcessPort` so that `'message'` listeners always receive the
|
|
5
|
+
* raw eimer message, regardless of whether the underlying port delivers it directly
|
|
6
|
+
* (`Electron.UtilityProcess`) or wrapped in a `MessageEvent` (`Electron.ParentPort`).
|
|
7
|
+
*/
|
|
8
|
+
class MessageEventUnwrappingPort {
|
|
9
|
+
constructor(port) {
|
|
10
|
+
this.port = port;
|
|
11
|
+
}
|
|
12
|
+
postMessage(message) {
|
|
13
|
+
this.port.postMessage(message);
|
|
14
|
+
}
|
|
15
|
+
on(event, handler) {
|
|
16
|
+
this.port.on(event, (received) => {
|
|
17
|
+
if (!EimerMessage.isEimerMessage(received) && received !== null && typeof received === 'object' && 'data' in received) {
|
|
18
|
+
handler(received.data);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
handler(received);
|
|
22
|
+
});
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
off(event, handler) {
|
|
26
|
+
this.port.off?.(event, handler);
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
2
30
|
/**
|
|
3
31
|
* Eimer UtilityProcess Transport
|
|
4
32
|
*
|
|
@@ -9,7 +37,7 @@ import { EimerMessagePortTransport } from './EimerMessagePortTransport';
|
|
|
9
37
|
*/
|
|
10
38
|
export class EimerUtilityProcessTransport extends EimerMessagePortTransport {
|
|
11
39
|
constructor(port, options, dependencies) {
|
|
12
|
-
super(port, { ...options, logModuleName: options?.logModuleName ?? 'EimerUtilityProcessTransport' }, dependencies);
|
|
40
|
+
super(new MessageEventUnwrappingPort(port), { ...options, logModuleName: options?.logModuleName ?? 'EimerUtilityProcessTransport' }, dependencies);
|
|
13
41
|
}
|
|
14
42
|
}
|
|
15
43
|
//# sourceMappingURL=EimerUtilityProcessTransport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EimerUtilityProcessTransport.js","sourceRoot":"","sources":["../../../src/transports/EimerUtilityProcessTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAwF,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"EimerUtilityProcessTransport.js","sourceRoot":"","sources":["../../../src/transports/EimerUtilityProcessTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,yBAAyB,EAAwF,MAAM,6BAA6B,CAAC;AAuB9J;;;;GAIG;AACH,MAAM,0BAA0B;IAC5B,YAA6B,IAAwB;QAAxB,SAAI,GAAJ,IAAI,CAAoB;IAAG,CAAC;IAEzD,WAAW,CAAC,OAAY;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,EAAE,CAAC,KAAgB,EAAE,OAA+B;QAChD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,QAAa,EAAQ,EAAE;YACxC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;gBACpH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvB,OAAO;YACX,CAAC;YACD,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,KAAgB,EAAE,OAA+B;QACjD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,4BAA6B,SAAQ,yBAAyB;IACvE,YAAY,IAAwB,EAAE,OAA6C,EAAE,YAAuD;QACxI,KAAK,CAAC,IAAI,0BAA0B,CAAC,IAAI,CAAgB,EAAE,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,8BAA8B,EAAE,EAAE,YAAY,CAAC,CAAC;IACtK,CAAC;CACJ"}
|