@delight-rpc/child-process 0.6.2 → 0.6.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/lib/client.js CHANGED
@@ -2,17 +2,17 @@ import * as DelightRPC from 'delight-rpc';
2
2
  import { Deferred } from 'extra-promise';
3
3
  import { CustomError } from '@blackglory/errors';
4
4
  export function createClient(process, { parameterValidators, expectedVersion, channel } = {}) {
5
- const pendings = {};
5
+ const pendings = new Map();
6
6
  process.on('message', handler);
7
7
  const client = DelightRPC.createClient(async function send(request) {
8
8
  const res = new Deferred();
9
- pendings[request.id] = res;
9
+ pendings.set(request.id, res);
10
10
  try {
11
11
  process.send(request);
12
12
  return await res;
13
13
  }
14
14
  finally {
15
- delete pendings[request.id];
15
+ pendings.delete(request.id);
16
16
  }
17
17
  }, {
18
18
  parameterValidators,
@@ -24,28 +24,28 @@ export function createClient(process, { parameterValidators, expectedVersion, ch
24
24
  process.off('message', handler);
25
25
  for (const [key, deferred] of Object.entries(pendings)) {
26
26
  deferred.reject(new ClientClosed());
27
- delete pendings[key];
27
+ pendings.delete(key);
28
28
  }
29
29
  }
30
30
  function handler(res) {
31
31
  var _a;
32
32
  if (DelightRPC.isResult(res) || DelightRPC.isError(res)) {
33
- (_a = pendings[res.id]) === null || _a === void 0 ? void 0 : _a.resolve(res);
33
+ (_a = pendings.get(res.id)) === null || _a === void 0 ? void 0 : _a.resolve(res);
34
34
  }
35
35
  }
36
36
  }
37
37
  export function createBatchClient(process, { expectedVersion, channel } = {}) {
38
- const pendings = {};
38
+ const pendings = new Map();
39
39
  process.on('message', handler);
40
40
  const client = new DelightRPC.BatchClient(async function send(request) {
41
41
  const res = new Deferred();
42
- pendings[request.id] = res;
42
+ pendings.set(request.id, res);
43
43
  try {
44
44
  process.send(request);
45
45
  return await res;
46
46
  }
47
47
  finally {
48
- delete pendings[request.id];
48
+ pendings.delete(request.id);
49
49
  }
50
50
  }, {
51
51
  expectedVersion,
@@ -56,13 +56,13 @@ export function createBatchClient(process, { expectedVersion, channel } = {}) {
56
56
  process.off('message', handler);
57
57
  for (const [key, deferred] of Object.entries(pendings)) {
58
58
  deferred.reject(new ClientClosed());
59
- delete pendings[key];
59
+ pendings.delete(key);
60
60
  }
61
61
  }
62
62
  function handler(res) {
63
63
  var _a;
64
64
  if (DelightRPC.isError(res) || DelightRPC.isBatchResponse(res)) {
65
- (_a = pendings[res.id]) === null || _a === void 0 ? void 0 : _a.resolve(res);
65
+ (_a = pendings.get(res.id)) === null || _a === void 0 ? void 0 : _a.resolve(res);
66
66
  }
67
67
  }
68
68
  }
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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delight-rpc/child-process",
3
- "version": "0.6.2",
3
+ "version": "0.6.3",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "files": [
package/src/client.ts CHANGED
@@ -12,19 +12,19 @@ export function createClient<IAPI extends object>(
12
12
  channel?: string
13
13
  } = {}
14
14
  ): [client: DelightRPC.ClientProxy<IAPI>, close: () => void] {
15
- const pendings: Record<string, Deferred<IResponse<unknown>> | undefined> = {}
15
+ const pendings: Map<string, Deferred<IResponse<unknown>>> = new Map()
16
16
 
17
17
  process.on('message', handler)
18
18
 
19
19
  const client = DelightRPC.createClient<IAPI>(
20
20
  async function send(request: IRequest<unknown>) {
21
21
  const res = new Deferred<IResponse<unknown>>()
22
- pendings[request.id] = res
22
+ pendings.set(request.id, res)
23
23
  try {
24
24
  process.send!(request)
25
25
  return await res
26
26
  } finally {
27
- delete pendings[request.id]
27
+ pendings.delete(request.id)
28
28
  }
29
29
  }
30
30
  , {
@@ -40,14 +40,14 @@ export function createClient<IAPI extends object>(
40
40
  process.off('message', handler)
41
41
 
42
42
  for (const [key, deferred] of Object.entries(pendings)) {
43
- deferred!.reject(new ClientClosed())
44
- delete pendings[key]
43
+ deferred.reject(new ClientClosed())
44
+ pendings.delete(key)
45
45
  }
46
46
  }
47
47
 
48
48
  function handler(res: any): void {
49
49
  if (DelightRPC.isResult(res) || DelightRPC.isError(res)) {
50
- pendings[res.id]?.resolve(res)
50
+ pendings.get(res.id)?.resolve(res)
51
51
  }
52
52
  }
53
53
  }
@@ -59,11 +59,10 @@ export function createBatchClient<DataType>(
59
59
  channel?: string
60
60
  } = {}
61
61
  ): [client: DelightRPC.BatchClient<DataType>, close: () => void] {
62
- const pendings: Record<
62
+ const pendings: Map<
63
63
  string
64
- , | Deferred<IError | IBatchResponse<unknown>>
65
- | undefined
66
- > = {}
64
+ , Deferred<IError | IBatchResponse<unknown>>
65
+ > = new Map()
67
66
 
68
67
  process.on('message', handler)
69
68
 
@@ -73,12 +72,12 @@ export function createBatchClient<DataType>(
73
72
  | IError
74
73
  | IBatchResponse<unknown>
75
74
  >()
76
- pendings[request.id] = res
75
+ pendings.set(request.id, res)
77
76
  try {
78
77
  process.send!(request)
79
78
  return await res
80
79
  } finally {
81
- delete pendings[request.id]
80
+ pendings.delete(request.id)
82
81
  }
83
82
  }
84
83
  , {
@@ -93,14 +92,14 @@ export function createBatchClient<DataType>(
93
92
  process.off('message', handler)
94
93
 
95
94
  for (const [key, deferred] of Object.entries(pendings)) {
96
- deferred!.reject(new ClientClosed())
97
- delete pendings[key]
95
+ deferred.reject(new ClientClosed())
96
+ pendings.delete(key)
98
97
  }
99
98
  }
100
99
 
101
100
  function handler(res: any): void {
102
101
  if (DelightRPC.isError(res) || DelightRPC.isBatchResponse(res)) {
103
- pendings[res.id]?.resolve(res)
102
+ pendings.get(res.id)?.resolve(res)
104
103
  }
105
104
  }
106
105
  }