@delight-rpc/electron 1.0.0 → 2.0.1

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 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];
@@ -49,19 +47,15 @@ function createClientInMain(port) {
49
47
  }
50
48
  function handler(event) {
51
49
  const res = event.data;
52
- if (DelightRPC.isResult(res)) {
50
+ if (DelightRPC.isResult(res) || DelightRPC.isError(res)) {
53
51
  pendings[res.id].resolve(res);
54
52
  }
55
- else if (DelightRPC.isError(res)) {
56
- pendings[res.id].reject(res);
57
- }
58
53
  }
59
54
  }
60
55
  exports.createClientInMain = createClientInMain;
61
56
  function createClientInRenderer(port) {
62
57
  const pendings = {};
63
58
  port.addEventListener('message', handler);
64
- port.start();
65
59
  const client = DelightRPC.createClient(async function send(request) {
66
60
  const res = new extra_promise_1.Deferred();
67
61
  pendings[request.id] = res;
@@ -76,7 +70,6 @@ function createClientInRenderer(port) {
76
70
  return [client, close];
77
71
  function close() {
78
72
  port.removeEventListener('message', handler);
79
- port.close();
80
73
  for (const [key, deferred] of Object.entries(pendings)) {
81
74
  deferred.reject(new ClientClosed());
82
75
  delete pendings[key];
@@ -84,12 +77,9 @@ function createClientInRenderer(port) {
84
77
  }
85
78
  function handler(event) {
86
79
  const res = event.data;
87
- if (DelightRPC.isResult(res)) {
80
+ if (DelightRPC.isResult(res) || DelightRPC.isError(res)) {
88
81
  pendings[res.id].resolve(res);
89
82
  }
90
- else if (DelightRPC.isError(res)) {
91
- pendings[res.id].reject(res);
92
- }
93
83
  }
94
84
  }
95
85
  exports.createClientInRenderer = createClientInRenderer;
package/lib/client.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
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.start();
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.start();
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,IAAI,CAAC,KAAK,EAAE,CAAA;IACZ,OAAO,GAAG,EAAE;QACV,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACvC,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC,CAAA;IAED,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;AAnBD,gDAmBC;AAED,SAAgB,sBAAsB,CACpC,GAAS,EACT,IAAiB;IAEjB,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACzC,IAAI,CAAC,KAAK,EAAE,CAAA;IACZ,OAAO,GAAG,EAAE;QACV,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC,CAAA;IAED,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;AAnBD,wDAmBC"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delight-rpc/electron",
3
- "version": "1.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "files": [
@@ -30,30 +30,28 @@
30
30
  }
31
31
  },
32
32
  "devDependencies": {
33
- "@blackglory/jest-matchers": "^0.1.21",
33
+ "@blackglory/jest-matchers": "^0.2.1",
34
34
  "@commitlint/cli": "^15.0.0",
35
35
  "@commitlint/config-conventional": "^15.0.0",
36
36
  "@types/jest": "^27.0.3",
37
- "@types/node": "^16.11.9",
38
- "@typescript-eslint/eslint-plugin": "^5.4.0",
39
- "@typescript-eslint/parser": "^5.4.0",
37
+ "@typescript-eslint/eslint-plugin": "^5.7.0",
38
+ "@typescript-eslint/parser": "^5.7.0",
40
39
  "cross-env": "^7.0.3",
41
- "delight-rpc": "^1.1.1",
42
- "electron": "^16.0.1",
43
- "eslint": "8.2.0",
40
+ "delight-rpc": "^1.1.2",
41
+ "electron": "^16.0.5",
42
+ "eslint": "8.4.1",
44
43
  "husky": "4",
45
- "jest": "^27.3.1",
44
+ "jest": "^27.4.5",
46
45
  "npm-run-all": "^4.1.5",
47
46
  "rimraf": "^3.0.2",
48
47
  "standard-version": "^9.3.2",
49
- "ts-jest": "^27.0.7",
50
- "ts-node": "^10.4.0",
48
+ "ts-jest": "^27.1.2",
51
49
  "tscpaths": "^0.0.9",
52
- "typescript": "^4.5.2"
50
+ "typescript": "^4.5.4"
53
51
  },
54
52
  "dependencies": {
55
53
  "@blackglory/errors": "^1.1.2",
56
- "extra-promise": "^0.19.1"
54
+ "extra-promise": "^0.21.0"
57
55
  },
58
56
  "peerDependencies": {
59
57
  "delight-rpc": "^1.1.1",
package/CHANGELOG.md DELETED
@@ -1,41 +0,0 @@
1
- # Changelog
2
-
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
-
5
- ## [1.0.0](https://github.com/delight-rpc/electron/compare/v0.2.1...v1.0.0) (2021-11-19)
6
-
7
-
8
- ### ⚠ BREAKING CHANGES
9
-
10
- * peerDependencies changed
11
- - delight-rpc^1.1.1
12
- - electron^16.0.1
13
-
14
- * upgrade dependencies ([2693bdc](https://github.com/delight-rpc/electron/commit/2693bdcfa7db80237abdd639ac83b79697e1fbc5))
15
-
16
- ### [0.2.1](https://github.com/delight-rpc/electron/compare/v0.2.0...v0.2.1) (2021-11-16)
17
-
18
- ## [0.2.0](https://github.com/delight-rpc/electron/compare/v0.1.1...v0.2.0) (2021-11-13)
19
-
20
-
21
- ### ⚠ BREAKING CHANGES
22
-
23
- * the return value of createClient changed
24
-
25
- ### Features
26
-
27
- * support to close client ([fddcae6](https://github.com/delight-rpc/electron/commit/fddcae6d075f4c86742065df3d48bd1fac4606f4))
28
-
29
- ### [0.1.1](https://github.com/delight-rpc/electron/compare/v0.1.0...v0.1.1) (2021-11-13)
30
-
31
-
32
- ### Features
33
-
34
- * no need to manually call `port.start()` now ([70e25c0](https://github.com/delight-rpc/electron/commit/70e25c0829f3dd8852e25c8ccd1944257e2b9ac5))
35
-
36
- ## 0.1.0 (2021-11-13)
37
-
38
-
39
- ### Features
40
-
41
- * init ([e425c46](https://github.com/delight-rpc/electron/commit/e425c465bdb3d254f60e95eaf30a2595febda9f4))