@xentobias/worker-rpc 1.0.5 → 1.0.6
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/dist/endpoint.d.ts +9 -3
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/index.js +19 -6
- package/dist/types.d.ts +12 -6
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/endpoint.d.ts
CHANGED
|
@@ -3,10 +3,12 @@ import { type MethodPath, type MessageTarget } from './types';
|
|
|
3
3
|
export interface EndpointOptions {
|
|
4
4
|
/** Timeout for RPC calls in milliseconds (default: 30000) */
|
|
5
5
|
timeout?: number;
|
|
6
|
-
/** Custom error handler */
|
|
7
|
-
onError?: (error: Error) => void;
|
|
8
6
|
/** Enable debug logging */
|
|
9
7
|
debug?: boolean;
|
|
8
|
+
/** Custom error handler */
|
|
9
|
+
onError?: (error: Error) => void;
|
|
10
|
+
/** Callback invoked when the remote endpoint is released */
|
|
11
|
+
onRelease?: () => void;
|
|
10
12
|
}
|
|
11
13
|
/** Configuration for exposing an API */
|
|
12
14
|
export interface ExposeOptions {
|
|
@@ -87,7 +89,11 @@ export declare class Endpoint {
|
|
|
87
89
|
/**
|
|
88
90
|
* Handle release of callbacks
|
|
89
91
|
*/
|
|
90
|
-
private
|
|
92
|
+
private handleCallbackRelease;
|
|
93
|
+
/**
|
|
94
|
+
* Handle notification that the remote endpoint has been released
|
|
95
|
+
*/
|
|
96
|
+
private handleEndpointRelease;
|
|
91
97
|
/**
|
|
92
98
|
* Register a local callback function
|
|
93
99
|
*/
|
package/dist/endpoint.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,UAAU,EAGf,KAAK,aAAa,EAEnB,MAAM,SAAS,CAAC;AAYjB,iDAAiD;AACjD,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,
|
|
1
|
+
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,8 @@ var MessageType;
|
|
|
6
6
|
MessageType2[MessageType2["Result"] = 1] = "Result";
|
|
7
7
|
MessageType2[MessageType2["Error"] = 2] = "Error";
|
|
8
8
|
MessageType2[MessageType2["Callback"] = 3] = "Callback";
|
|
9
|
-
MessageType2[MessageType2["
|
|
9
|
+
MessageType2[MessageType2["CallbackRelease"] = 4] = "CallbackRelease";
|
|
10
|
+
MessageType2[MessageType2["EndpointRelease"] = 5] = "EndpointRelease";
|
|
10
11
|
})(MessageType ||= {});
|
|
11
12
|
|
|
12
13
|
// src/id.ts
|
|
@@ -40,7 +41,8 @@ class Endpoint {
|
|
|
40
41
|
this.options = {
|
|
41
42
|
timeout: options.timeout ?? DEFAULT_TIMEOUT,
|
|
42
43
|
onError: options.onError ?? console.error,
|
|
43
|
-
debug: options.debug ?? false
|
|
44
|
+
debug: options.debug ?? false,
|
|
45
|
+
onRelease: options.onRelease ?? (() => {})
|
|
44
46
|
};
|
|
45
47
|
this.boundMessageHandler = this.handleMessage.bind(this);
|
|
46
48
|
this.attachListener();
|
|
@@ -89,8 +91,11 @@ class Endpoint {
|
|
|
89
91
|
case 3 /* Callback */:
|
|
90
92
|
this.handleCallback(message);
|
|
91
93
|
break;
|
|
92
|
-
case 4 /*
|
|
93
|
-
this.
|
|
94
|
+
case 4 /* CallbackRelease */:
|
|
95
|
+
this.handleCallbackRelease(message);
|
|
96
|
+
break;
|
|
97
|
+
case 5 /* EndpointRelease */:
|
|
98
|
+
this.handleEndpointRelease();
|
|
94
99
|
break;
|
|
95
100
|
}
|
|
96
101
|
}
|
|
@@ -244,11 +249,15 @@ class Endpoint {
|
|
|
244
249
|
});
|
|
245
250
|
}
|
|
246
251
|
}
|
|
247
|
-
|
|
252
|
+
handleCallbackRelease(message) {
|
|
248
253
|
for (const callbackId of message.c) {
|
|
249
254
|
this.callbacks.delete(callbackId);
|
|
250
255
|
}
|
|
251
256
|
}
|
|
257
|
+
handleEndpointRelease() {
|
|
258
|
+
this.debug("Remote endpoint released");
|
|
259
|
+
this.options.onRelease();
|
|
260
|
+
}
|
|
252
261
|
registerCallback(fn, remaining = -1) {
|
|
253
262
|
const id = generateCallbackId();
|
|
254
263
|
this.callbacks.set(id, { fn, remaining });
|
|
@@ -423,12 +432,16 @@ class Endpoint {
|
|
|
423
432
|
if (this.remoteCallbacks.size > 0) {
|
|
424
433
|
const callbackIds = Array.from(this.remoteCallbacks.keys());
|
|
425
434
|
this.send({
|
|
426
|
-
t: 4 /*
|
|
435
|
+
t: 4 /* CallbackRelease */,
|
|
427
436
|
id: generateCallId(),
|
|
428
437
|
c: callbackIds
|
|
429
438
|
});
|
|
430
439
|
this.remoteCallbacks.clear();
|
|
431
440
|
}
|
|
441
|
+
this.send({
|
|
442
|
+
t: 5 /* EndpointRelease */,
|
|
443
|
+
id: generateCallId()
|
|
444
|
+
});
|
|
432
445
|
this.callbacks.clear();
|
|
433
446
|
this.detachListener();
|
|
434
447
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -11,8 +11,10 @@ export declare enum MessageType {
|
|
|
11
11
|
Error = 2,
|
|
12
12
|
/** Callback invocation */
|
|
13
13
|
Callback = 3,
|
|
14
|
-
/** Release
|
|
15
|
-
|
|
14
|
+
/** Release callback references */
|
|
15
|
+
CallbackRelease = 4,
|
|
16
|
+
/** Notify that the endpoint has been released */
|
|
17
|
+
EndpointRelease = 5
|
|
16
18
|
}
|
|
17
19
|
/** Base message structure */
|
|
18
20
|
export interface BaseMessage {
|
|
@@ -59,14 +61,18 @@ export interface CallbackMessage extends BaseMessage {
|
|
|
59
61
|
/** Callback mappings for nested callbacks in args */
|
|
60
62
|
cb?: Record<number, CallbackId>;
|
|
61
63
|
}
|
|
62
|
-
/** Release
|
|
63
|
-
export interface
|
|
64
|
-
t: MessageType.
|
|
64
|
+
/** Release callback references */
|
|
65
|
+
export interface CallbackReleaseMessage extends BaseMessage {
|
|
66
|
+
t: MessageType.CallbackRelease;
|
|
65
67
|
/** Callback IDs to release */
|
|
66
68
|
c: CallbackId[];
|
|
67
69
|
}
|
|
70
|
+
/** Notify that the endpoint has been released */
|
|
71
|
+
export interface EndpointReleaseMessage extends BaseMessage {
|
|
72
|
+
t: MessageType.EndpointRelease;
|
|
73
|
+
}
|
|
68
74
|
/** Union of all message types */
|
|
69
|
-
export type RpcMessage = CallMessage | ResultMessage | ErrorMessage | CallbackMessage |
|
|
75
|
+
export type RpcMessage = CallMessage | ResultMessage | ErrorMessage | CallbackMessage | CallbackReleaseMessage | EndpointReleaseMessage;
|
|
70
76
|
/** Unwrap a Promise type */
|
|
71
77
|
export type Unpromise<T> = T extends Promise<infer U> ? U : T;
|
|
72
78
|
/** Make a function async if it isn't already */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAM/C,8DAA8D;AAC9D,MAAM,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC;AAElC,yCAAyC;AACzC,oBAAY,WAAW;IACrB,iCAAiC;IACjC,IAAI,IAAI;IACR,0BAA0B;IAC1B,MAAM,IAAI;IACV,qBAAqB;IACrB,KAAK,IAAI;IACT,0BAA0B;IAC1B,QAAQ,IAAI;IACZ,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|