@procwire/transport 0.1.3 → 0.2.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/README.md +130 -4
- package/dist/channel/builder.d.ts +17 -0
- package/dist/channel/builder.d.ts.map +1 -1
- package/dist/channel/builder.js +34 -0
- package/dist/channel/builder.js.map +1 -1
- package/dist/channel/index.d.ts +1 -1
- package/dist/channel/index.d.ts.map +1 -1
- package/dist/channel/index.js +1 -1
- package/dist/channel/index.js.map +1 -1
- package/dist/channel/quickstart.d.ts.map +1 -1
- package/dist/channel/quickstart.js +16 -10
- package/dist/channel/quickstart.js.map +1 -1
- package/dist/channel/request-channel.d.ts +6 -1
- package/dist/channel/request-channel.d.ts.map +1 -1
- package/dist/channel/request-channel.js +138 -34
- package/dist/channel/request-channel.js.map +1 -1
- package/dist/channel/types.d.ts +129 -7
- package/dist/channel/types.d.ts.map +1 -1
- package/dist/framing/length-prefixed.d.ts +5 -1
- package/dist/framing/length-prefixed.d.ts.map +1 -1
- package/dist/framing/length-prefixed.js +94 -15
- package/dist/framing/length-prefixed.js.map +1 -1
- package/dist/framing/line-delimited.d.ts +4 -1
- package/dist/framing/line-delimited.d.ts.map +1 -1
- package/dist/framing/line-delimited.js +89 -23
- package/dist/framing/line-delimited.js.map +1 -1
- package/dist/process/handle.d.ts.map +1 -1
- package/dist/process/handle.js.map +1 -1
- package/dist/process/manager.d.ts +16 -0
- package/dist/process/manager.d.ts.map +1 -1
- package/dist/process/manager.js +132 -82
- package/dist/process/manager.js.map +1 -1
- package/dist/process/types.d.ts +110 -1
- package/dist/process/types.d.ts.map +1 -1
- package/dist/protocol/jsonrpc.d.ts.map +1 -1
- package/dist/protocol/jsonrpc.js.map +1 -1
- package/dist/protocol/simple.d.ts.map +1 -1
- package/dist/protocol/simple.js.map +1 -1
- package/dist/serialization/json.d.ts.map +1 -1
- package/dist/serialization/json.js.map +1 -1
- package/dist/transport/socket-server.d.ts.map +1 -1
- package/dist/transport/socket-server.js.map +1 -1
- package/dist/transport/socket-transport.d.ts +11 -13
- package/dist/transport/socket-transport.d.ts.map +1 -1
- package/dist/transport/socket-transport.js +57 -26
- package/dist/transport/socket-transport.js.map +1 -1
- package/dist/transport/stdio-transport.d.ts +12 -19
- package/dist/transport/stdio-transport.d.ts.map +1 -1
- package/dist/transport/stdio-transport.js +54 -33
- package/dist/transport/stdio-transport.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/metrics.d.ts +6 -0
- package/dist/utils/metrics.d.ts.map +1 -0
- package/dist/utils/metrics.js +2 -0
- package/dist/utils/metrics.js.map +1 -0
- package/dist/utils/pipe-path.d.ts +8 -2
- package/dist/utils/pipe-path.d.ts.map +1 -1
- package/dist/utils/pipe-path.js +27 -4
- package/dist/utils/pipe-path.js.map +1 -1
- package/dist/utils/platform.d.ts.map +1 -1
- package/dist/utils/platform.js +1 -1
- package/dist/utils/platform.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,37 @@
|
|
|
1
1
|
import { EventEmitter } from "../utils/events.js";
|
|
2
2
|
import { ProtocolError, toError, SerializationError } from "../utils/errors.js";
|
|
3
3
|
import { createTimeoutSignal } from "../utils/time.js";
|
|
4
|
+
const noop = () => { };
|
|
5
|
+
function createPendingRequest() {
|
|
6
|
+
return {
|
|
7
|
+
resolve: noop,
|
|
8
|
+
reject: noop,
|
|
9
|
+
timeoutSignal: null,
|
|
10
|
+
startTime: 0,
|
|
11
|
+
method: "",
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
class PendingRequestPool {
|
|
15
|
+
pool = [];
|
|
16
|
+
maxSize;
|
|
17
|
+
constructor(maxSize = 100) {
|
|
18
|
+
this.maxSize = maxSize;
|
|
19
|
+
}
|
|
20
|
+
acquire() {
|
|
21
|
+
return this.pool.pop() ?? createPendingRequest();
|
|
22
|
+
}
|
|
23
|
+
release(pending) {
|
|
24
|
+
pending.timeoutSignal?.cancel();
|
|
25
|
+
pending.resolve = noop;
|
|
26
|
+
pending.reject = noop;
|
|
27
|
+
pending.timeoutSignal = null;
|
|
28
|
+
pending.startTime = 0;
|
|
29
|
+
pending.method = "";
|
|
30
|
+
if (this.pool.length < this.maxSize) {
|
|
31
|
+
this.pool.push(pending);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
4
35
|
/**
|
|
5
36
|
* JSON-RPC response accessor implementation.
|
|
6
37
|
*/
|
|
@@ -80,6 +111,9 @@ export class RequestChannel {
|
|
|
80
111
|
middleware;
|
|
81
112
|
maxInboundFrames;
|
|
82
113
|
bufferEarlyNotifications;
|
|
114
|
+
metrics;
|
|
115
|
+
pendingPool;
|
|
116
|
+
onMiddlewareError;
|
|
83
117
|
events = new EventEmitter();
|
|
84
118
|
pendingRequests = new Map();
|
|
85
119
|
requestHandlers = [];
|
|
@@ -88,16 +122,34 @@ export class RequestChannel {
|
|
|
88
122
|
transportDataUnsubscribe;
|
|
89
123
|
transportErrorUnsubscribe;
|
|
90
124
|
_isConnected = false;
|
|
91
|
-
inboundFrameCount = 0;
|
|
92
125
|
constructor(options) {
|
|
126
|
+
// Validate options
|
|
127
|
+
if (options.timeout !== undefined && options.timeout <= 0) {
|
|
128
|
+
throw new Error("RequestChannel: timeout must be positive");
|
|
129
|
+
}
|
|
130
|
+
if (options.maxInboundFrames !== undefined && options.maxInboundFrames < 0) {
|
|
131
|
+
throw new Error("RequestChannel: maxInboundFrames cannot be negative");
|
|
132
|
+
}
|
|
133
|
+
if (options.bufferEarlyNotifications !== undefined && options.bufferEarlyNotifications < 0) {
|
|
134
|
+
throw new Error("RequestChannel: bufferEarlyNotifications cannot be negative");
|
|
135
|
+
}
|
|
136
|
+
if (options.pendingRequestPoolSize !== undefined && options.pendingRequestPoolSize < 0) {
|
|
137
|
+
throw new Error("RequestChannel: pendingRequestPoolSize cannot be negative");
|
|
138
|
+
}
|
|
93
139
|
this.transport = options.transport;
|
|
94
140
|
this.framing = options.framing;
|
|
95
141
|
this.serialization = options.serialization;
|
|
96
142
|
this.protocol = options.protocol;
|
|
97
143
|
this.defaultTimeout = options.timeout !== undefined ? options.timeout : 30000;
|
|
98
144
|
this.middleware = options.middleware !== undefined ? options.middleware : [];
|
|
99
|
-
this.maxInboundFrames =
|
|
100
|
-
|
|
145
|
+
this.maxInboundFrames =
|
|
146
|
+
options.maxInboundFrames !== undefined ? options.maxInboundFrames : undefined;
|
|
147
|
+
this.bufferEarlyNotifications =
|
|
148
|
+
options.bufferEarlyNotifications !== undefined ? options.bufferEarlyNotifications : 10;
|
|
149
|
+
this.metrics = options.metrics;
|
|
150
|
+
const poolSize = options.pendingRequestPoolSize ?? 100;
|
|
151
|
+
this.pendingPool = poolSize > 0 ? new PendingRequestPool(poolSize) : null;
|
|
152
|
+
this.onMiddlewareError = options.onMiddlewareError;
|
|
101
153
|
// Auto-detect response accessor if not provided
|
|
102
154
|
this.responseAccessor =
|
|
103
155
|
options.responseAccessor !== undefined
|
|
@@ -126,7 +178,22 @@ export class RequestChannel {
|
|
|
126
178
|
});
|
|
127
179
|
// Connect transport if not already connected (e.g., server-accepted connections)
|
|
128
180
|
if (this.transport.state !== "connected") {
|
|
129
|
-
|
|
181
|
+
try {
|
|
182
|
+
await this.transport.connect();
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
// Cleanup subscriptions on connection failure to prevent memory leaks
|
|
186
|
+
// and ensure clean state for potential retry
|
|
187
|
+
if (this.transportDataUnsubscribe !== undefined) {
|
|
188
|
+
this.transportDataUnsubscribe();
|
|
189
|
+
this.transportDataUnsubscribe = undefined;
|
|
190
|
+
}
|
|
191
|
+
if (this.transportErrorUnsubscribe !== undefined) {
|
|
192
|
+
this.transportErrorUnsubscribe();
|
|
193
|
+
this.transportErrorUnsubscribe = undefined;
|
|
194
|
+
}
|
|
195
|
+
throw error;
|
|
196
|
+
}
|
|
130
197
|
}
|
|
131
198
|
this._isConnected = true;
|
|
132
199
|
this.events.emit("start", undefined);
|
|
@@ -151,8 +218,9 @@ export class RequestChannel {
|
|
|
151
218
|
// Reject all pending requests
|
|
152
219
|
const channelClosedError = new Error("Channel closed");
|
|
153
220
|
for (const pending of this.pendingRequests.values()) {
|
|
154
|
-
pending.timeoutSignal
|
|
221
|
+
pending.timeoutSignal?.cancel();
|
|
155
222
|
pending.reject(channelClosedError);
|
|
223
|
+
this.releasePendingRequest(pending);
|
|
156
224
|
}
|
|
157
225
|
this.pendingRequests.clear();
|
|
158
226
|
// Reset framing state
|
|
@@ -174,25 +242,33 @@ export class RequestChannel {
|
|
|
174
242
|
if (id === undefined) {
|
|
175
243
|
throw new ProtocolError("Failed to extract request ID from created request");
|
|
176
244
|
}
|
|
245
|
+
this.metrics?.incrementCounter("channel.request", 1, { method });
|
|
177
246
|
// Call middleware
|
|
178
247
|
await this.runMiddlewareHook("onOutgoingRequest", request);
|
|
248
|
+
const pending = this.acquirePendingRequest();
|
|
249
|
+
pending.startTime = Date.now();
|
|
250
|
+
pending.method = method;
|
|
179
251
|
// Setup pending request promise
|
|
180
252
|
const resultPromise = new Promise((resolve, reject) => {
|
|
181
253
|
const effectiveTimeout = timeout ?? this.defaultTimeout;
|
|
182
254
|
const timeoutSignal = createTimeoutSignal(effectiveTimeout);
|
|
183
255
|
// Store pending request
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
});
|
|
256
|
+
pending.resolve = resolve;
|
|
257
|
+
pending.reject = reject;
|
|
258
|
+
pending.timeoutSignal = timeoutSignal;
|
|
259
|
+
this.pendingRequests.set(id, pending);
|
|
189
260
|
// Race between response and timeout
|
|
190
261
|
timeoutSignal.promise.catch((error) => {
|
|
191
262
|
// Timeout occurred
|
|
192
|
-
const
|
|
193
|
-
if (
|
|
263
|
+
const activePending = this.pendingRequests.get(id);
|
|
264
|
+
if (activePending) {
|
|
194
265
|
this.pendingRequests.delete(id);
|
|
195
|
-
|
|
266
|
+
this.metrics?.incrementCounter("channel.request_timeout", 1, {
|
|
267
|
+
method: activePending.method,
|
|
268
|
+
});
|
|
269
|
+
this.recordRequestLatency(activePending, "timeout");
|
|
270
|
+
activePending.reject(error);
|
|
271
|
+
this.releasePendingRequest(activePending);
|
|
196
272
|
}
|
|
197
273
|
});
|
|
198
274
|
});
|
|
@@ -205,10 +281,11 @@ export class RequestChannel {
|
|
|
205
281
|
}
|
|
206
282
|
catch (error) {
|
|
207
283
|
// Write failed, clean up pending request
|
|
208
|
-
const
|
|
209
|
-
if (
|
|
210
|
-
|
|
284
|
+
const activePending = this.pendingRequests.get(id);
|
|
285
|
+
if (activePending) {
|
|
286
|
+
activePending.timeoutSignal?.cancel();
|
|
211
287
|
this.pendingRequests.delete(id);
|
|
288
|
+
this.releasePendingRequest(activePending);
|
|
212
289
|
}
|
|
213
290
|
throw error;
|
|
214
291
|
}
|
|
@@ -284,18 +361,21 @@ export class RequestChannel {
|
|
|
284
361
|
this.emitError(toError(error));
|
|
285
362
|
return;
|
|
286
363
|
}
|
|
287
|
-
// Check max inbound frames limit
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
this.inboundFrameCount -= frames.length;
|
|
294
|
-
return;
|
|
295
|
-
}
|
|
364
|
+
// Check max inbound frames limit for this batch BEFORE processing.
|
|
365
|
+
// This is a per-batch limit to prevent flooding, not a lifetime cap.
|
|
366
|
+
if (this.maxInboundFrames !== undefined && frames.length > this.maxInboundFrames) {
|
|
367
|
+
this.emitError(new Error(`Exceeded max inbound frames limit: received ${frames.length} frames in one chunk (limit: ${this.maxInboundFrames}). Closing channel.`));
|
|
368
|
+
await this.close();
|
|
369
|
+
return;
|
|
296
370
|
}
|
|
297
371
|
// Process each frame
|
|
298
372
|
for (const frame of frames) {
|
|
373
|
+
if (this.metrics) {
|
|
374
|
+
this.metrics.incrementCounter("framing.frames", 1, { direction: "inbound" });
|
|
375
|
+
this.metrics.recordHistogram("framing.frame_size_bytes", frame.length, {
|
|
376
|
+
direction: "inbound",
|
|
377
|
+
});
|
|
378
|
+
}
|
|
299
379
|
try {
|
|
300
380
|
await this.processFrame(frame);
|
|
301
381
|
}
|
|
@@ -304,10 +384,6 @@ export class RequestChannel {
|
|
|
304
384
|
this.emitError(toError(error));
|
|
305
385
|
}
|
|
306
386
|
}
|
|
307
|
-
// Reset counter after processing batch
|
|
308
|
-
if (this.maxInboundFrames !== undefined) {
|
|
309
|
-
this.inboundFrameCount = 0;
|
|
310
|
-
}
|
|
311
387
|
}
|
|
312
388
|
/**
|
|
313
389
|
* Processes a single frame.
|
|
@@ -355,16 +431,19 @@ export class RequestChannel {
|
|
|
355
431
|
}
|
|
356
432
|
// Remove from pending
|
|
357
433
|
this.pendingRequests.delete(id);
|
|
358
|
-
pending.timeoutSignal
|
|
434
|
+
pending.timeoutSignal?.cancel();
|
|
359
435
|
// Check if error response
|
|
360
436
|
if (this.responseAccessor.isErrorResponse(response)) {
|
|
361
437
|
const error = this.responseAccessor.getError(response);
|
|
438
|
+
this.recordRequestLatency(pending, "error");
|
|
362
439
|
pending.reject(new ProtocolError("Request failed", error));
|
|
363
440
|
}
|
|
364
441
|
else {
|
|
365
442
|
const result = this.responseAccessor.getResult(response);
|
|
443
|
+
this.recordRequestLatency(pending, "success");
|
|
366
444
|
pending.resolve(result);
|
|
367
445
|
}
|
|
446
|
+
this.releasePendingRequest(pending);
|
|
368
447
|
}
|
|
369
448
|
/**
|
|
370
449
|
* Handles incoming request message.
|
|
@@ -420,9 +499,12 @@ export class RequestChannel {
|
|
|
420
499
|
async handleNotification(notification) {
|
|
421
500
|
// If no handlers registered yet, buffer the notification for later delivery
|
|
422
501
|
if (this.notificationHandlers.length === 0) {
|
|
423
|
-
|
|
424
|
-
|
|
502
|
+
// Enforce buffer limit using sliding window (keep most recent notifications)
|
|
503
|
+
if (this.bufferedNotifications.length >= this.bufferEarlyNotifications) {
|
|
504
|
+
// Remove oldest notification to make room for new one
|
|
505
|
+
this.bufferedNotifications.shift();
|
|
425
506
|
}
|
|
507
|
+
this.bufferedNotifications.push(notification);
|
|
426
508
|
return;
|
|
427
509
|
}
|
|
428
510
|
// Call all notification handlers
|
|
@@ -482,16 +564,38 @@ export class RequestChannel {
|
|
|
482
564
|
await typedFn.call(mw, data);
|
|
483
565
|
}
|
|
484
566
|
catch (error) {
|
|
485
|
-
//
|
|
486
|
-
|
|
567
|
+
// Middleware errors shouldn't break the channel
|
|
568
|
+
// If callback provided, invoke it; otherwise silently ignore
|
|
569
|
+
if (this.onMiddlewareError) {
|
|
570
|
+
this.onMiddlewareError(hook, toError(error));
|
|
571
|
+
}
|
|
487
572
|
}
|
|
488
573
|
}
|
|
489
574
|
}
|
|
490
575
|
}
|
|
576
|
+
acquirePendingRequest() {
|
|
577
|
+
return this.pendingPool?.acquire() ?? createPendingRequest();
|
|
578
|
+
}
|
|
579
|
+
releasePendingRequest(pending) {
|
|
580
|
+
if (this.pendingPool) {
|
|
581
|
+
this.pendingPool.release(pending);
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
recordRequestLatency(pending, status) {
|
|
585
|
+
if (!this.metrics) {
|
|
586
|
+
return;
|
|
587
|
+
}
|
|
588
|
+
const latencyMs = Date.now() - pending.startTime;
|
|
589
|
+
this.metrics.recordHistogram("channel.request_latency_ms", latencyMs, {
|
|
590
|
+
method: pending.method,
|
|
591
|
+
status,
|
|
592
|
+
});
|
|
593
|
+
}
|
|
491
594
|
/**
|
|
492
595
|
* Emits error event.
|
|
493
596
|
*/
|
|
494
597
|
emitError(error) {
|
|
598
|
+
this.metrics?.incrementCounter("channel.error", 1, { type: error.name });
|
|
495
599
|
this.events.emit("error", error);
|
|
496
600
|
}
|
|
497
601
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-channel.js","sourceRoot":"","sources":["../../src/channel/request-channel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"request-channel.js","sourceRoot":"","sources":["../../src/channel/request-channel.ts"],"names":[],"mappings":"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"}
|
package/dist/channel/types.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type { Transport, TransportServer } from "../transport/types.js";
|
|
|
4
4
|
import type { FramingCodec } from "../framing/types.js";
|
|
5
5
|
import type { SerializationCodec } from "../serialization/types.js";
|
|
6
6
|
import type { Protocol, RequestId, ProtocolDataError } from "../protocol/types.js";
|
|
7
|
+
import type { MetricsCollector } from "../utils/metrics.js";
|
|
7
8
|
/**
|
|
8
9
|
* Request handler function.
|
|
9
10
|
* @template TReq - Request data type
|
|
@@ -117,6 +118,10 @@ export interface ChannelOptions<TReq = unknown, TRes = unknown, TNotif = unknown
|
|
|
117
118
|
* Middleware hooks for logging, metrics, debugging.
|
|
118
119
|
*/
|
|
119
120
|
middleware?: ChannelMiddleware[];
|
|
121
|
+
/**
|
|
122
|
+
* Optional metrics collector for channel instrumentation.
|
|
123
|
+
*/
|
|
124
|
+
metrics?: MetricsCollector;
|
|
120
125
|
/**
|
|
121
126
|
* Maximum number of inbound frames to buffer before backpressure (optional).
|
|
122
127
|
*/
|
|
@@ -127,6 +132,19 @@ export interface ChannelOptions<TReq = unknown, TRes = unknown, TNotif = unknown
|
|
|
127
132
|
* Default: 10
|
|
128
133
|
*/
|
|
129
134
|
bufferEarlyNotifications?: number;
|
|
135
|
+
/**
|
|
136
|
+
* Maximum size of pending request pool (0 disables pooling).
|
|
137
|
+
* Default: 100
|
|
138
|
+
*/
|
|
139
|
+
pendingRequestPoolSize?: number;
|
|
140
|
+
/**
|
|
141
|
+
* Callback for middleware errors.
|
|
142
|
+
* Called when a middleware hook throws an error.
|
|
143
|
+
* If not provided, errors are silently ignored (not logged).
|
|
144
|
+
* @param hook - Name of the middleware hook that failed
|
|
145
|
+
* @param error - The error that was thrown
|
|
146
|
+
*/
|
|
147
|
+
onMiddlewareError?: (hook: string, error: Error) => void;
|
|
130
148
|
}
|
|
131
149
|
/**
|
|
132
150
|
* High-level communication channel combining all layers.
|
|
@@ -135,6 +153,33 @@ export interface ChannelOptions<TReq = unknown, TRes = unknown, TNotif = unknown
|
|
|
135
153
|
* @template TReq - Request data type (wire format)
|
|
136
154
|
* @template TRes - Response data type (wire format)
|
|
137
155
|
* @template TNotif - Notification data type (wire format)
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```typescript
|
|
159
|
+
* // Create and start a channel
|
|
160
|
+
* const channel = new ChannelBuilder()
|
|
161
|
+
* .withTransport(transport)
|
|
162
|
+
* .withFraming(new LengthPrefixedFraming())
|
|
163
|
+
* .withSerialization(new JsonCodec())
|
|
164
|
+
* .withProtocol(new JsonRpcProtocol())
|
|
165
|
+
* .build();
|
|
166
|
+
*
|
|
167
|
+
* await channel.start();
|
|
168
|
+
*
|
|
169
|
+
* // Send request
|
|
170
|
+
* const result = await channel.request("add", { a: 1, b: 2 });
|
|
171
|
+
*
|
|
172
|
+
* // Handle incoming requests
|
|
173
|
+
* channel.onRequest((req) => {
|
|
174
|
+
* return { result: "processed" };
|
|
175
|
+
* });
|
|
176
|
+
*
|
|
177
|
+
* // Cleanup
|
|
178
|
+
* await channel.close();
|
|
179
|
+
* ```
|
|
180
|
+
*
|
|
181
|
+
* @see {@link ChannelBuilder} for fluent channel construction
|
|
182
|
+
* @see {@link ChannelOptions} for configuration options
|
|
138
183
|
*/
|
|
139
184
|
export interface Channel<TReq = unknown, TRes = unknown, TNotif = unknown> {
|
|
140
185
|
/**
|
|
@@ -142,42 +187,119 @@ export interface Channel<TReq = unknown, TRes = unknown, TNotif = unknown> {
|
|
|
142
187
|
*/
|
|
143
188
|
readonly isConnected: boolean;
|
|
144
189
|
/**
|
|
145
|
-
* Starts the channel (connects transport).
|
|
190
|
+
* Starts the channel (connects transport and begins message processing).
|
|
191
|
+
*
|
|
192
|
+
* @throws {TransportError} if transport connection fails
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* ```typescript
|
|
196
|
+
* await channel.start();
|
|
197
|
+
* console.log(channel.isConnected); // true
|
|
198
|
+
* ```
|
|
146
199
|
*/
|
|
147
200
|
start(): Promise<void>;
|
|
148
201
|
/**
|
|
149
202
|
* Closes the channel gracefully.
|
|
203
|
+
* Rejects all pending requests and disconnects the transport.
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* ```typescript
|
|
207
|
+
* await channel.close();
|
|
208
|
+
* console.log(channel.isConnected); // false
|
|
209
|
+
* ```
|
|
150
210
|
*/
|
|
151
211
|
close(): Promise<void>;
|
|
152
212
|
/**
|
|
153
213
|
* Sends a request and waits for response.
|
|
154
|
-
*
|
|
155
|
-
* @param
|
|
156
|
-
* @param
|
|
214
|
+
*
|
|
215
|
+
* @param method - Method name to call
|
|
216
|
+
* @param params - Optional parameters to pass
|
|
217
|
+
* @param timeout - Optional timeout override in milliseconds
|
|
157
218
|
* @returns Promise resolving to response result
|
|
219
|
+
*
|
|
158
220
|
* @throws {TimeoutError} if request times out
|
|
159
|
-
* @throws {ProtocolError} if response
|
|
221
|
+
* @throws {ProtocolError} if response contains an error
|
|
222
|
+
* @throws {Error} if channel is not connected
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
* ```typescript
|
|
226
|
+
* // Basic request
|
|
227
|
+
* const result = await channel.request("add", { a: 1, b: 2 });
|
|
228
|
+
*
|
|
229
|
+
* // With custom timeout
|
|
230
|
+
* const result = await channel.request("slowOperation", {}, 60000);
|
|
231
|
+
* ```
|
|
232
|
+
*
|
|
233
|
+
* @see {@link notify} for fire-and-forget messages
|
|
160
234
|
*/
|
|
161
235
|
request(method: string, params?: unknown, timeout?: number): Promise<unknown>;
|
|
162
236
|
/**
|
|
163
237
|
* Sends a notification (fire-and-forget, no response expected).
|
|
238
|
+
*
|
|
164
239
|
* @param method - Method name
|
|
165
240
|
* @param params - Optional parameters
|
|
241
|
+
*
|
|
242
|
+
* @throws {Error} if channel is not connected
|
|
243
|
+
*
|
|
244
|
+
* @example
|
|
245
|
+
* ```typescript
|
|
246
|
+
* await channel.notify("log", { message: "Something happened" });
|
|
247
|
+
* ```
|
|
248
|
+
*
|
|
249
|
+
* @see {@link request} for request/response pattern
|
|
166
250
|
*/
|
|
167
251
|
notify(method: string, params?: unknown): Promise<void>;
|
|
168
252
|
/**
|
|
169
253
|
* Registers handler for incoming requests.
|
|
170
|
-
*
|
|
254
|
+
*
|
|
255
|
+
* @param handler - Function to handle incoming requests
|
|
256
|
+
* @returns Unsubscribe function to remove the handler
|
|
257
|
+
*
|
|
258
|
+
* @example
|
|
259
|
+
* ```typescript
|
|
260
|
+
* const unsubscribe = channel.onRequest((request) => {
|
|
261
|
+
* if (request.method === "ping") {
|
|
262
|
+
* return { pong: true };
|
|
263
|
+
* }
|
|
264
|
+
* throw new Error("Unknown method");
|
|
265
|
+
* });
|
|
266
|
+
*
|
|
267
|
+
* // Later: remove handler
|
|
268
|
+
* unsubscribe();
|
|
269
|
+
* ```
|
|
171
270
|
*/
|
|
172
271
|
onRequest(handler: RequestHandler<TReq, TRes>): Unsubscribe;
|
|
173
272
|
/**
|
|
174
273
|
* Registers handler for incoming notifications.
|
|
175
|
-
*
|
|
274
|
+
*
|
|
275
|
+
* @param handler - Function to handle incoming notifications
|
|
276
|
+
* @returns Unsubscribe function to remove the handler
|
|
277
|
+
*
|
|
278
|
+
* @example
|
|
279
|
+
* ```typescript
|
|
280
|
+
* channel.onNotification((notification) => {
|
|
281
|
+
* console.log("Received:", notification);
|
|
282
|
+
* });
|
|
283
|
+
* ```
|
|
176
284
|
*/
|
|
177
285
|
onNotification(handler: NotificationHandler<TNotif>): Unsubscribe;
|
|
178
286
|
/**
|
|
179
287
|
* Subscribes to channel events.
|
|
288
|
+
*
|
|
289
|
+
* @param event - Event name ('start', 'close', 'error')
|
|
290
|
+
* @param handler - Event handler function
|
|
180
291
|
* @returns Unsubscribe function
|
|
292
|
+
*
|
|
293
|
+
* @example
|
|
294
|
+
* ```typescript
|
|
295
|
+
* channel.on("error", (error) => {
|
|
296
|
+
* console.error("Channel error:", error);
|
|
297
|
+
* });
|
|
298
|
+
*
|
|
299
|
+
* channel.on("close", () => {
|
|
300
|
+
* console.log("Channel closed");
|
|
301
|
+
* });
|
|
302
|
+
* ```
|
|
181
303
|
*/
|
|
182
304
|
on<K extends keyof ChannelEvents>(event: K, handler: (data: ChannelEvents[K]) => void): Unsubscribe;
|
|
183
305
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/channel/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/channel/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,8 @@ export interface LengthPrefixedFramingOptions {
|
|
|
27
27
|
export declare class LengthPrefixedFraming implements FramingCodec {
|
|
28
28
|
private static readonly HEADER_SIZE;
|
|
29
29
|
private readonly maxMessageSize;
|
|
30
|
-
private
|
|
30
|
+
private buffers;
|
|
31
|
+
private totalLength;
|
|
31
32
|
private expectedLength;
|
|
32
33
|
constructor(options?: LengthPrefixedFramingOptions);
|
|
33
34
|
/**
|
|
@@ -51,5 +52,8 @@ export declare class LengthPrefixedFraming implements FramingCodec {
|
|
|
51
52
|
* Returns current buffer size in bytes.
|
|
52
53
|
*/
|
|
53
54
|
getBufferSize(): number;
|
|
55
|
+
private peekBytes;
|
|
56
|
+
private takeBytes;
|
|
57
|
+
private consumeBytes;
|
|
54
58
|
}
|
|
55
59
|
//# sourceMappingURL=length-prefixed.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"length-prefixed.d.ts","sourceRoot":"","sources":["../../src/framing/length-prefixed.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,qBAAsB,YAAW,YAAY;IACxD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAK;IAExC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"length-prefixed.d.ts","sourceRoot":"","sources":["../../src/framing/length-prefixed.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,qBAAsB,YAAW,YAAY;IACxD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAK;IAExC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAgB;gBAE1B,OAAO,GAAE,4BAAiC;IAYtD;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAM/B;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAgE/B;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB,OAAO,CAAC,SAAS;IAwBjB,OAAO,CAAC,SAAS;IAoCjB,OAAO,CAAC,YAAY;CAgBrB"}
|