@enkaku/client 0.12.1 → 0.12.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.d.ts CHANGED
@@ -1,16 +1,22 @@
1
1
  import { Disposer } from '@enkaku/async';
2
- import type { AnyProcedureDefinition, AnyRequestProcedureDefinition, ChannelProcedureDefinition, ClientTransportOf, DataOf, EventProcedureDefinition, ProtocolDefinition, RequestProcedureDefinition, ReturnOf, StreamProcedureDefinition } from '@enkaku/protocol';
2
+ import { type Logger } from '@enkaku/log';
3
+ import type { AnyProcedureDefinition, AnyRequestProcedureDefinition, ChannelProcedureDefinition, ClientTransportOf, DataOf, EventProcedureDefinition, ProtocolDefinition, RequestProcedureDefinition, RequestType, ReturnOf, StreamProcedureDefinition } from '@enkaku/protocol';
3
4
  import { type TokenSigner } from '@enkaku/token';
4
5
  type FilterNever<T> = {
5
6
  [K in keyof T as T[K] extends never ? never : K]: T[K];
6
7
  };
7
- export type RequestCall<Result> = Promise<Result> & {
8
+ export type RequestMeta = {
9
+ type: RequestType;
10
+ procedure: string;
11
+ };
12
+ export type RequestCall<Result> = Promise<Result> & RequestMeta & {
8
13
  id: string;
9
14
  abort: (reason?: string) => void;
10
15
  signal: AbortSignal;
11
16
  };
12
17
  export type StreamCall<Receive, Result> = RequestCall<Result> & {
13
18
  close: () => void;
19
+ procedure: string;
14
20
  readable: ReadableStream<Receive>;
15
21
  };
16
22
  export type ChannelCall<Receive, Send, Result> = StreamCall<Receive, Result> & {
@@ -61,6 +67,7 @@ export type ClientParams<Protocol extends ProtocolDefinition> = {
61
67
  getRandomID?: () => string;
62
68
  handleTransportDisposed?: (signal: AbortSignal) => ClientTransportOf<Protocol> | void;
63
69
  handleTransportError?: (error: Error) => ClientTransportOf<Protocol> | void;
70
+ logger?: Logger;
64
71
  transport: ClientTransportOf<Protocol>;
65
72
  serverID?: string;
66
73
  signer?: TokenSigner | Promise<TokenSigner>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/lib/client.js CHANGED
@@ -1,10 +1,11 @@
1
1
  import { Disposer, defer } from '@enkaku/async';
2
+ import { getEnkakuLogger } from '@enkaku/log';
2
3
  import { createPipe, writeTo } from '@enkaku/stream';
3
4
  import { createUnsignedToken } from '@enkaku/token';
4
5
  import { RequestError } from './error.js';
5
- function createController(onDone) {
6
+ function createController(meta, onDone) {
6
7
  const deferred = defer();
7
- return Object.assign(new AbortController(), {
8
+ return Object.assign(new AbortController(), meta, {
8
9
  result: deferred.promise,
9
10
  ok: (value)=>{
10
11
  deferred.resolve(value);
@@ -20,20 +21,20 @@ function createController(onDone) {
20
21
  }
21
22
  });
22
23
  }
23
- function createRequest(id, controller, signal, sent) {
24
+ function createRequest({ controller, sent, ...call }) {
24
25
  const abort = (reason)=>{
25
26
  void sent.then(()=>{
26
27
  controller.abort(reason);
27
28
  });
28
29
  };
29
- return Object.assign(sent.then(()=>controller.result), {
30
- abort,
31
- id,
32
- signal
30
+ return Object.assign(sent.then(()=>controller.result), call, {
31
+ type: controller.type,
32
+ procedure: controller.procedure,
33
+ abort
33
34
  });
34
35
  }
35
- function createStream(id, controller, signal, sent, readable) {
36
- const request = createRequest(id, controller, signal, sent);
36
+ function createStream({ readable, ...requestParams }) {
37
+ const request = createRequest(requestParams);
37
38
  return Object.assign(request, {
38
39
  close: ()=>request.abort('Close'),
39
40
  readable
@@ -63,18 +64,23 @@ export class Client extends Disposer {
63
64
  #handleTransportDisposed;
64
65
  // biome-ignore lint/suspicious/noConfusingVoidType: return type
65
66
  #handleTransportError;
67
+ #logger;
66
68
  #transport;
67
69
  constructor(params){
68
70
  super({
69
71
  dispose: async (reason)=>{
70
72
  this.#abortControllers(reason);
71
73
  await this.#transport.dispose(reason);
74
+ this.#logger.debug('disposed');
72
75
  }
73
76
  });
74
77
  this.#createMessage = getCreateMessage(params.signer, params.serverID);
75
78
  this.#getRandomID = params.getRandomID ?? defaultRandomID;
76
79
  this.#handleTransportDisposed = params.handleTransportDisposed;
77
80
  this.#handleTransportError = params.handleTransportError;
81
+ this.#logger = params.logger ?? getEnkakuLogger('client', {
82
+ clientID: this.#getRandomID()
83
+ });
78
84
  this.#transport = params.transport;
79
85
  // Start reading from transport
80
86
  this.#setupTransport();
@@ -94,9 +100,11 @@ export class Client extends Disposer {
94
100
  }
95
101
  const newTransport = this.#handleTransportDisposed?.(this.#transport.signal);
96
102
  if (newTransport == null) {
103
+ this.#logger.debug('transport disposed');
97
104
  // Abort client if no new transport is provided
98
105
  this.abort('TransportDisposed');
99
106
  } else {
107
+ this.#logger.debug('using new transport provided by transport disposed handler');
100
108
  // Abort running procedures and start using new transport
101
109
  this.#abortControllers('TransportDisposed');
102
110
  this.#transport = newTransport;
@@ -118,14 +126,19 @@ export class Client extends Disposer {
118
126
  if (this.signal.aborted) {
119
127
  return;
120
128
  }
129
+ this.#logger.debug('failed to read from transport', {
130
+ cause
131
+ });
121
132
  const error = new Error('Transport read failed', {
122
133
  cause
123
134
  });
124
135
  const newTransport = this.#handleTransportError?.(error);
125
136
  if (newTransport == null) {
137
+ this.#logger.warn('aborting following unhanded transport error');
126
138
  // Abort client if no new transport is provided
127
139
  this.abort(error);
128
140
  } else {
141
+ this.#logger.debug('using new transport provided by transport error handler');
129
142
  // Abort running procedures and start using new transport
130
143
  this.#abortControllers(error);
131
144
  this.#transport = newTransport;
@@ -135,18 +148,41 @@ export class Client extends Disposer {
135
148
  }
136
149
  const controller = this.#controllers[msg.payload.rid];
137
150
  if (controller == null) {
138
- console.warn(`No controller for request ${msg.payload.rid}`);
151
+ this.#logger.warn('controller not found for request {rid}', {
152
+ rid: msg.payload.rid
153
+ });
139
154
  continue;
140
155
  }
141
156
  switch(msg.payload.typ){
142
157
  case 'error':
143
- controller.error(RequestError.fromPayload(msg.payload));
144
- delete this.#controllers[msg.payload.rid];
145
- break;
158
+ {
159
+ const error = RequestError.fromPayload(msg.payload);
160
+ this.#logger.debug('error reply for {type} {procedure} with ID {rid}', {
161
+ type: controller.type,
162
+ procedure: controller.procedure,
163
+ rid: msg.payload.rid,
164
+ error
165
+ });
166
+ controller.error(error);
167
+ delete this.#controllers[msg.payload.rid];
168
+ break;
169
+ }
146
170
  case 'receive':
171
+ this.#logger.trace('receive reply for {type} {procedure} with ID {rid}', {
172
+ type: controller.type,
173
+ procedure: controller.procedure,
174
+ rid: msg.payload.rid,
175
+ receive: msg.payload.val
176
+ });
147
177
  void controller.receive?.write(msg.payload.val);
148
178
  break;
149
179
  case 'result':
180
+ this.#logger.trace('result reply for {type} {procedure} with ID {rid}', {
181
+ type: controller.type,
182
+ procedure: controller.procedure,
183
+ rid: msg.payload.rid,
184
+ result: msg.payload.val
185
+ });
150
186
  controller.ok(msg.payload.val);
151
187
  delete this.#controllers[msg.payload.rid];
152
188
  break;
@@ -169,6 +205,12 @@ export class Client extends Disposer {
169
205
  ]) : controller.signal;
170
206
  signal.addEventListener('abort', ()=>{
171
207
  const reason = signal.reason.name ?? signal.reason;
208
+ this.#logger.trace('abort {type} {procedure} with ID {rid}', {
209
+ type: controller.type,
210
+ procedure: controller.procedure,
211
+ rid,
212
+ reason
213
+ });
172
214
  void this.#write({
173
215
  typ: 'abort',
174
216
  rid,
@@ -192,15 +234,31 @@ export class Client extends Disposer {
192
234
  typ: 'event',
193
235
  prc: procedure
194
236
  };
237
+ this.#logger.trace('send event {procedure}', {
238
+ procedure,
239
+ data: args[0]
240
+ });
195
241
  await this.#write(payload);
196
242
  }
197
243
  request(procedure, ...args) {
198
244
  const config = args[0] ?? {};
199
- const controller = createController();
245
+ const controller = createController({
246
+ type: 'request',
247
+ procedure
248
+ });
200
249
  const rid = config.id ?? this.#getRandomID();
201
250
  const providedSignal = config?.signal;
202
251
  if (providedSignal?.aborted) {
203
- return createRequest(rid, controller, providedSignal, Promise.reject(providedSignal));
252
+ this.#logger.debug('reject aborted request {procedure} with ID { rid }', {
253
+ procedure,
254
+ rid
255
+ });
256
+ return createRequest({
257
+ id: rid,
258
+ controller,
259
+ signal: providedSignal,
260
+ sent: Promise.reject(providedSignal)
261
+ });
204
262
  }
205
263
  this.#controllers[rid] = controller;
206
264
  const prm = config.param;
@@ -214,21 +272,44 @@ export class Client extends Disposer {
214
272
  rid,
215
273
  prc: procedure
216
274
  };
275
+ this.#logger.trace('send request {procedure} with ID {rid}', {
276
+ procedure,
277
+ rid,
278
+ param: prm
279
+ });
217
280
  const sent = this.#write(payload);
218
281
  const signal = this.#handleSignal(rid, controller, providedSignal);
219
- return createRequest(rid, controller, signal, sent);
282
+ return createRequest({
283
+ id: rid,
284
+ controller,
285
+ signal,
286
+ sent
287
+ });
220
288
  }
221
289
  createStream(procedure, ...args) {
222
290
  const config = args[0] ?? {};
223
291
  const receive = createPipe();
224
292
  const writer = receive.writable.getWriter();
225
- const controller = Object.assign(createController(()=>writer.close()), {
293
+ const controller = Object.assign(createController({
294
+ type: 'stream',
295
+ procedure
296
+ }, ()=>writer.close()), {
226
297
  receive: writer
227
298
  });
228
299
  const rid = config.id ?? this.#getRandomID();
229
300
  const providedSignal = config?.signal;
230
301
  if (providedSignal?.aborted) {
231
- return createStream(rid, controller, providedSignal, Promise.reject(providedSignal), receive.readable);
302
+ this.#logger.debug('reject aborted stream creation {procedure} with ID {rid}', {
303
+ procedure,
304
+ rid
305
+ });
306
+ return createStream({
307
+ id: rid,
308
+ controller,
309
+ signal: providedSignal,
310
+ sent: Promise.reject(providedSignal),
311
+ readable: receive.readable
312
+ });
232
313
  }
233
314
  this.#controllers[rid] = controller;
234
315
  const prm = config?.param;
@@ -242,23 +323,47 @@ export class Client extends Disposer {
242
323
  rid,
243
324
  prc: procedure
244
325
  };
326
+ this.#logger.trace('create stream {procedure} with ID {rid}', {
327
+ procedure,
328
+ rid,
329
+ param: prm
330
+ });
245
331
  const sent = this.#write(payload);
246
332
  const signal = this.#handleSignal(rid, controller, providedSignal);
247
- return createStream(rid, controller, signal, sent, receive.readable);
333
+ return createStream({
334
+ id: rid,
335
+ controller,
336
+ signal,
337
+ sent,
338
+ readable: receive.readable
339
+ });
248
340
  }
249
341
  createChannel(procedure, ...args) {
250
342
  const config = args[0] ?? {};
251
343
  const receive = createPipe();
252
344
  const writer = receive.writable.getWriter();
253
- const controller = Object.assign(createController(()=>writer.close()), {
345
+ const controller = Object.assign(createController({
346
+ type: 'channel',
347
+ procedure
348
+ }, ()=>writer.close()), {
254
349
  receive: writer
255
350
  });
256
351
  const rid = config.id ?? this.#getRandomID();
257
352
  const providedSignal = config?.signal;
258
353
  if (providedSignal?.aborted) {
354
+ this.#logger.debug('reject aborted channel creation {procedure} with ID {rid}', {
355
+ procedure,
356
+ rid
357
+ });
259
358
  // no-op
260
359
  const send = async (_val)=>{};
261
- return Object.assign(createStream(rid, controller, providedSignal, Promise.reject(providedSignal), receive.readable), {
360
+ return Object.assign(createStream({
361
+ id: rid,
362
+ controller,
363
+ signal: providedSignal,
364
+ sent: Promise.reject(providedSignal),
365
+ readable: receive.readable
366
+ }), {
262
367
  send,
263
368
  writable: writeTo(send)
264
369
  });
@@ -275,16 +380,32 @@ export class Client extends Disposer {
275
380
  rid,
276
381
  prc: procedure
277
382
  };
383
+ this.#logger.trace('create channel {procedure} with ID {rid}', {
384
+ procedure,
385
+ rid,
386
+ param: prm
387
+ });
278
388
  const sent = this.#write(payload);
279
389
  const signal = this.#handleSignal(rid, controller, providedSignal);
280
390
  const send = async (val)=>{
391
+ this.#logger.trace('send value to channel {procedure} with ID {rid}', {
392
+ procedure,
393
+ rid,
394
+ value: val
395
+ });
281
396
  await this.#write({
282
397
  typ: 'send',
283
398
  rid,
284
399
  val
285
400
  });
286
401
  };
287
- return Object.assign(createStream(rid, controller, signal, sent, receive.readable), {
402
+ return Object.assign(createStream({
403
+ id: rid,
404
+ controller,
405
+ signal,
406
+ sent,
407
+ readable: receive.readable
408
+ }), {
288
409
  send,
289
410
  writable: writeTo(send)
290
411
  });
package/lib/error.d.ts CHANGED
@@ -11,5 +11,7 @@ export declare class RequestError<Code extends string = string, Data extends Rec
11
11
  constructor(params: RequestErrorParams<Code, Data>);
12
12
  get code(): Code;
13
13
  get data(): Data;
14
+ toString(): string;
15
+ toJSON(): ErrorObjectType<Code, Data>;
14
16
  }
15
17
  //# sourceMappingURL=error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEzD,MAAM,MAAM,eAAe,CACzB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC5D;IACF,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,kBAAkB,CAC5B,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC5D,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAE9C,qBAAa,YAAY,CACrB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEhE,SAAQ,KACR,YAAW,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC;;IAEtC,MAAM,CAAC,WAAW,CAChB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,OAAO,EAAE,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC;gBAWvD,MAAM,EAAE,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC;IAOlD,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,IAAI,IAAI,IAAI,IAAI,CAEf;CACF"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEzD,MAAM,MAAM,eAAe,CACzB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC5D;IACF,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,kBAAkB,CAC5B,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC5D,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAE9C,qBAAa,YAAY,CACrB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEhE,SAAQ,KACR,YAAW,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC;;IAEtC,MAAM,CAAC,WAAW,CAChB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,OAAO,EAAE,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC;gBAWvD,MAAM,EAAE,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC;IAOlD,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,QAAQ;IAIR,MAAM,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC;CAGtC"}
package/lib/error.js CHANGED
@@ -20,4 +20,14 @@ export class RequestError extends Error {
20
20
  get data() {
21
21
  return this.#data;
22
22
  }
23
+ toString() {
24
+ return `[RequestError] code ${this.#code}: ${this.message}`;
25
+ }
26
+ toJSON() {
27
+ return {
28
+ code: this.#code,
29
+ data: this.#data,
30
+ message: this.message
31
+ };
32
+ }
23
33
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enkaku/client",
3
- "version": "0.12.1",
3
+ "version": "0.12.3",
4
4
  "license": "MIT",
5
5
  "homepage": "https://enkaku.dev",
6
6
  "description": "Enkaku RPC client",
@@ -26,14 +26,15 @@
26
26
  ],
27
27
  "sideEffects": false,
28
28
  "dependencies": {
29
- "@enkaku/stream": "^0.12.4",
29
+ "@enkaku/execution": "^0.12.3",
30
30
  "@enkaku/async": "^0.12.2",
31
- "@enkaku/token": "^0.12.1",
32
- "@enkaku/execution": "^0.12.3"
31
+ "@enkaku/stream": "^0.12.4",
32
+ "@enkaku/log": "^0.12.1",
33
+ "@enkaku/token": "^0.12.3"
33
34
  },
34
35
  "devDependencies": {
35
- "@enkaku/transport": "^0.12.0",
36
- "@enkaku/protocol": "^0.12.1"
36
+ "@enkaku/protocol": "^0.12.1",
37
+ "@enkaku/transport": "^0.12.0"
37
38
  },
38
39
  "scripts": {
39
40
  "build:clean": "del lib",
@@ -42,7 +43,7 @@
42
43
  "build:types:ci": "tsc --emitDeclarationOnly --skipLibCheck --declarationMap false",
43
44
  "build": "pnpm run build:clean && pnpm run build:js && pnpm run build:types",
44
45
  "test:types": "tsc --noEmit --skipLibCheck",
45
- "test:unit": "node --experimental-vm-modules ../../node_modules/jest/bin/jest.js",
46
+ "test:unit": "vitest run",
46
47
  "test": "pnpm run test:types && pnpm run test:unit"
47
48
  }
48
49
  }