@delight-rpc/electron 1.0.0 → 1.1.0
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/CHANGELOG.md +7 -0
- package/README.md +12 -0
- package/lib/client.js +0 -4
- package/lib/client.js.map +1 -1
- package/lib/server.js +2 -10
- package/lib/server.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [1.1.0](https://github.com/delight-rpc/electron/compare/v1.0.0...v1.1.0) (2021-12-02)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* stop starting and closing MessagePort ([22d509a](https://github.com/delight-rpc/electron/commit/22d509ace6e3ffbdf4f99a8269f9cfd712f410cb))
|
|
11
|
+
|
|
5
12
|
## [1.0.0](https://github.com/delight-rpc/electron/compare/v0.2.1...v1.0.0) (2021-11-19)
|
|
6
13
|
|
|
7
14
|
|
package/README.md
CHANGED
|
@@ -22,6 +22,8 @@ await app.whenReady()
|
|
|
22
22
|
|
|
23
23
|
ipcMain.on('message-port', async event => {
|
|
24
24
|
const [port] = event.ports
|
|
25
|
+
|
|
26
|
+
port.start()
|
|
25
27
|
const [client] = createClientInMain<IAPI>(port)
|
|
26
28
|
await client.echo('hello world')
|
|
27
29
|
})
|
|
@@ -53,6 +55,8 @@ const api: IAPI = {
|
|
|
53
55
|
// create the MessageChannel in the renderer,
|
|
54
56
|
// because its script file is always executed last.
|
|
55
57
|
const channel = new MessageChannel()
|
|
58
|
+
|
|
59
|
+
channel.port1.start()
|
|
56
60
|
createServerInRenderer(api, channel.port1)
|
|
57
61
|
window.postMessage('message-port', '*', [channel.port2])
|
|
58
62
|
```
|
|
@@ -78,6 +82,8 @@ await app.whenReady()
|
|
|
78
82
|
|
|
79
83
|
ipcMain.on('message-port', async event => {
|
|
80
84
|
const [port] = event.ports
|
|
85
|
+
|
|
86
|
+
port.start()
|
|
81
87
|
createServerInMain(api, port)
|
|
82
88
|
})
|
|
83
89
|
|
|
@@ -103,6 +109,8 @@ import { createClientInRenderer } from '@delight-rpc/electron'
|
|
|
103
109
|
// because its script file is always executed last.
|
|
104
110
|
const channel = new MessageChannel()
|
|
105
111
|
window.postMessage('message-port', '*', [channel.port2])
|
|
112
|
+
|
|
113
|
+
channel.port1.start()
|
|
106
114
|
const [client] = createClientInRenderer(api, channel.port1)
|
|
107
115
|
await client.echo('hello world')
|
|
108
116
|
```
|
|
@@ -160,6 +168,8 @@ const api: IAPI = {
|
|
|
160
168
|
window.addEventListener('message', async event => {
|
|
161
169
|
if (event.data === 'message-port') {
|
|
162
170
|
const [port] = event.ports
|
|
171
|
+
|
|
172
|
+
port.start()
|
|
163
173
|
createServerInRenderer(api, port)
|
|
164
174
|
}
|
|
165
175
|
})
|
|
@@ -172,6 +182,8 @@ import { createClientInRenderer } from '@delight-rpc/electron'
|
|
|
172
182
|
window.addEventListener('message', async event => {
|
|
173
183
|
if (event.data === 'message-port') {
|
|
174
184
|
const [port] = event.ports
|
|
185
|
+
|
|
186
|
+
port.start()
|
|
175
187
|
const [client] = createClientInRenderer<IAPI>(port)
|
|
176
188
|
await client.echo('hello world')
|
|
177
189
|
}
|
package/lib/client.js
CHANGED
|
@@ -26,7 +26,6 @@ const errors_1 = require("@blackglory/errors");
|
|
|
26
26
|
function createClientInMain(port) {
|
|
27
27
|
const pendings = {};
|
|
28
28
|
port.addListener('message', handler);
|
|
29
|
-
port.start();
|
|
30
29
|
const client = DelightRPC.createClient(async function send(request) {
|
|
31
30
|
const res = new extra_promise_1.Deferred();
|
|
32
31
|
pendings[request.id] = res;
|
|
@@ -41,7 +40,6 @@ function createClientInMain(port) {
|
|
|
41
40
|
return [client, close];
|
|
42
41
|
function close() {
|
|
43
42
|
port.removeListener('message', handler);
|
|
44
|
-
port.close();
|
|
45
43
|
for (const [key, deferred] of Object.entries(pendings)) {
|
|
46
44
|
deferred.reject(new ClientClosed());
|
|
47
45
|
delete pendings[key];
|
|
@@ -61,7 +59,6 @@ exports.createClientInMain = createClientInMain;
|
|
|
61
59
|
function createClientInRenderer(port) {
|
|
62
60
|
const pendings = {};
|
|
63
61
|
port.addEventListener('message', handler);
|
|
64
|
-
port.start();
|
|
65
62
|
const client = DelightRPC.createClient(async function send(request) {
|
|
66
63
|
const res = new extra_promise_1.Deferred();
|
|
67
64
|
pendings[request.id] = res;
|
|
@@ -76,7 +73,6 @@ function createClientInRenderer(port) {
|
|
|
76
73
|
return [client, close];
|
|
77
74
|
function close() {
|
|
78
75
|
port.removeEventListener('message', handler);
|
|
79
|
-
port.close();
|
|
80
76
|
for (const [key, deferred] of Object.entries(pendings)) {
|
|
81
77
|
deferred.reject(new ClientClosed());
|
|
82
78
|
delete pendings[key];
|
package/lib/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,wDAAyC;AACzC,iDAAwC;AAExC,+CAAgD;AAEhD,SAAgB,kBAAkB,CAChC,IAA8B;IAE9B,MAAM,QAAQ,GAA0D,EAAE,CAAA;IAE1E,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/lib/server.js
CHANGED
|
@@ -23,11 +23,7 @@ exports.createServerInRenderer = exports.createServerInMain = void 0;
|
|
|
23
23
|
const DelightRPC = __importStar(require("delight-rpc"));
|
|
24
24
|
function createServerInMain(api, port) {
|
|
25
25
|
port.addListener('message', handler);
|
|
26
|
-
port.
|
|
27
|
-
return () => {
|
|
28
|
-
port.removeListener('message', handler);
|
|
29
|
-
port.close();
|
|
30
|
-
};
|
|
26
|
+
return () => port.removeListener('message', handler);
|
|
31
27
|
async function handler(event) {
|
|
32
28
|
const req = event.data;
|
|
33
29
|
if (DelightRPC.isRequest(req)) {
|
|
@@ -39,11 +35,7 @@ function createServerInMain(api, port) {
|
|
|
39
35
|
exports.createServerInMain = createServerInMain;
|
|
40
36
|
function createServerInRenderer(api, port) {
|
|
41
37
|
port.addEventListener('message', handler);
|
|
42
|
-
port.
|
|
43
|
-
return () => {
|
|
44
|
-
port.removeEventListener('message', handler);
|
|
45
|
-
port.close();
|
|
46
|
-
};
|
|
38
|
+
return () => port.removeEventListener('message', handler);
|
|
47
39
|
async function handler(event) {
|
|
48
40
|
const req = event.data;
|
|
49
41
|
if (DelightRPC.isRequest(req)) {
|
package/lib/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,wDAAyC;AAGzC,SAAgB,kBAAkB,CAChC,GAAS,EACT,IAA8B;IAE9B,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACpC,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,wDAAyC;AAGzC,SAAgB,kBAAkB,CAChC,GAAS,EACT,IAA8B;IAE9B,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACpC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAEpD,KAAK,UAAU,OAAO,CAAC,KAA4B;QACjD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAA;QACtB,IAAI,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC7B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YAExD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;SACzB;IACH,CAAC;AACH,CAAC;AAfD,gDAeC;AAED,SAAgB,sBAAsB,CACpC,GAAS,EACT,IAAiB;IAEjB,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACzC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAEzD,KAAK,UAAU,OAAO,CAAC,KAAmB;QACxC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAA;QACtB,IAAI,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC7B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YAExD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;SACzB;IACH,CAAC;AACH,CAAC;AAfD,wDAeC"}
|