@delight-rpc/child-process 0.3.0 → 0.3.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
@@ -72,6 +72,14 @@ function createClient<IAPI extends object>(
72
72
  ): [client: DelightRPC.ClientProxy<IAPI>, close: () => void]
73
73
  ```
74
74
 
75
+ ### createBatchClient
76
+ ```ts
77
+ function createBatchClient(
78
+ process: ChildProcess | NodeJS.Process
79
+ , expectedVersion?: `${number}.${number}.${number}`
80
+ ): [client: DelightRPC.BatchClient, close: () => void]
81
+ ```
82
+
75
83
  ### createServer
76
84
  ```ts
77
85
  function createServer<IAPI extends object>(
package/lib/client.d.ts CHANGED
@@ -3,5 +3,6 @@ import * as DelightRPC from 'delight-rpc';
3
3
  import { ChildProcess } from 'child_process';
4
4
  import { CustomError } from '@blackglory/errors';
5
5
  export declare function createClient<IAPI extends object>(process: ChildProcess | NodeJS.Process, parameterValidators?: DelightRPC.ParameterValidators<IAPI>, expectedVersion?: `${number}.${number}.${number}`): [client: DelightRPC.ClientProxy<IAPI>, close: () => void];
6
+ export declare function createBatchClient(process: ChildProcess | NodeJS.Process, expectedVersion?: `${number}.${number}.${number}`): [client: DelightRPC.BatchClient, close: () => void];
6
7
  export declare class ClientClosed extends CustomError {
7
8
  }
package/lib/client.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -19,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
23
  return result;
20
24
  };
21
25
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.ClientClosed = exports.createClient = void 0;
26
+ exports.ClientClosed = exports.createBatchClient = exports.createClient = void 0;
23
27
  const DelightRPC = __importStar(require("delight-rpc"));
24
28
  const extra_promise_1 = require("extra-promise");
25
29
  const errors_1 = require("@blackglory/errors");
@@ -52,6 +56,35 @@ function createClient(process, parameterValidators, expectedVersion) {
52
56
  }
53
57
  }
54
58
  exports.createClient = createClient;
59
+ function createBatchClient(process, expectedVersion) {
60
+ const pendings = {};
61
+ process.on('message', handler);
62
+ const client = new DelightRPC.BatchClient(async function send(request) {
63
+ const res = new extra_promise_1.Deferred();
64
+ pendings[request.id] = res;
65
+ try {
66
+ process.send(request);
67
+ return await res;
68
+ }
69
+ finally {
70
+ delete pendings[request.id];
71
+ }
72
+ }, expectedVersion);
73
+ return [client, close];
74
+ function close() {
75
+ process.off('message', handler);
76
+ for (const [key, deferred] of Object.entries(pendings)) {
77
+ deferred.reject(new ClientClosed());
78
+ delete pendings[key];
79
+ }
80
+ }
81
+ function handler(res) {
82
+ if (DelightRPC.isError(res) || DelightRPC.isBatchResponse(res)) {
83
+ pendings[res.id].resolve(res);
84
+ }
85
+ }
86
+ }
87
+ exports.createBatchClient = createBatchClient;
55
88
  class ClientClosed extends errors_1.CustomError {
56
89
  }
57
90
  exports.ClientClosed = ClientClosed;
package/lib/client.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,wDAAyC;AAEzC,iDAAwC;AACxC,+CAAgD;AAEhD,SAAgB,YAAY,CAC1B,OAAsC,EACtC,mBAA0D,EAC1D,eAAiD;IAEjD,MAAM,QAAQ,GAA0D,EAAE,CAAA;IAE1E,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAE9B,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CACpC,KAAK,UAAU,IAAI,CAAC,OAAO;QACzB,MAAM,GAAG,GAAG,IAAI,wBAAQ,EAA6B,CAAA;QACrD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAA;QAC1B,IAAI;YACF,OAAO,CAAC,IAAK,CAAC,OAAO,CAAC,CAAA;YACtB,OAAO,MAAM,GAAG,CAAA;SACjB;gBAAS;YACR,OAAO,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;SAC5B;IACH,CAAC,EACD,mBAAmB,EACnB,eAAe,CAChB,CAAA;IAED,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAEtB,SAAS,KAAK;QACZ,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAE/B,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YACtD,QAAQ,CAAC,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC,CAAA;YACnC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;SACrB;IACH,CAAC;IAED,SAAS,OAAO,CAAC,GAAQ;QACvB,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;SAC9B;IACH,CAAC;AACH,CAAC;AAxCD,oCAwCC;AAED,MAAa,YAAa,SAAQ,oBAAW;CAAG;AAAhD,oCAAgD"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAwB;AACxB,2CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,2CAAwB"}
package/lib/server.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
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,YAAY,CAC1B,GAAsC,EACtC,OAAsC,EACtC,mBAA0D,EAC1D,OAAyC;IAEzC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC9B,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAE5C,KAAK,UAAU,OAAO,CAAC,GAAQ;QAC7B,IAAI,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC7B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,cAAc,CAC5C,GAAG,EACH,GAAG,EACH,mBAAmB,EACnB,OAAO,CACR,CAAA;YAED,OAAO,CAAC,IAAK,CAAC,MAAM,CAAC,CAAA;SACtB;IACH,CAAC;AACH,CAAC;AArBD,oCAqBC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAAyC;AAGzC,SAAgB,YAAY,CAC1B,GAAsC,EACtC,OAAsC,EACtC,mBAA0D,EAC1D,OAAyC;IAEzC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC9B,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAE5C,KAAK,UAAU,OAAO,CAAC,GAAQ;QAC7B,IAAI,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC7B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,cAAc,CAC5C,GAAG,EACH,GAAG,EACH,mBAAmB,EACnB,OAAO,CACR,CAAA;YAED,OAAO,CAAC,IAAK,CAAC,MAAM,CAAC,CAAA;SACtB;IACH,CAAC;AACH,CAAC;AArBD,oCAqBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delight-rpc/child-process",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "files": [
@@ -29,33 +29,33 @@
29
29
  }
30
30
  },
31
31
  "devDependencies": {
32
- "@blackglory/jest-matchers": "^0.2.1",
33
- "@commitlint/cli": "^16.1.0",
34
- "@commitlint/config-conventional": "^16.0.0",
35
- "@types/jest": "^27.4.0",
32
+ "@blackglory/jest-matchers": "^0.3.1",
33
+ "@commitlint/cli": "^16.2.3",
34
+ "@commitlint/config-conventional": "^16.2.1",
35
+ "@types/jest": "^27.4.1",
36
36
  "@types/node": "14",
37
- "@typescript-eslint/eslint-plugin": "^5.11.0",
38
- "@typescript-eslint/parser": "^5.11.0",
37
+ "@typescript-eslint/eslint-plugin": "^5.15.0",
38
+ "@typescript-eslint/parser": "^5.15.0",
39
39
  "cross-env": "^7.0.3",
40
- "delight-rpc": "^2.0.0",
41
- "eslint": "8.8.0",
40
+ "delight-rpc": "^2.1.1",
41
+ "eslint": "8.11.0",
42
42
  "husky": "4",
43
43
  "jest": "^27.5.1",
44
44
  "npm-run-all": "^4.1.5",
45
- "return-style": "^0.12.6",
45
+ "return-style": "^1.0.0",
46
46
  "rimraf": "^3.0.2",
47
47
  "standard-version": "^9.3.2",
48
48
  "ts-jest": "^27.1.3",
49
- "ts-node": "^10.5.0",
49
+ "ts-node": "^10.7.0",
50
50
  "ts-patch": "^2.0.1",
51
- "typescript": "^4.5.5",
51
+ "typescript": "^4.6.2",
52
52
  "typescript-transform-paths": "^3.3.1"
53
53
  },
54
54
  "dependencies": {
55
55
  "@blackglory/errors": "^2.2.0",
56
- "extra-promise": "^0.21.2"
56
+ "extra-promise": "^1.0.1"
57
57
  },
58
58
  "peerDependencies": {
59
- "delight-rpc": "^2.0.0"
59
+ "delight-rpc": "^2.1.1"
60
60
  }
61
61
  }