@cloudpss/ubrpc 0.4.17 → 0.4.19
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/auth.js.map +1 -1
- package/dist/socket.js +2 -1
- package/dist/socket.js.map +1 -1
- package/dist/types/utils.d.ts +2 -2
- package/dist/types/utils.js.map +1 -1
- package/dist/utils/messaging.js.map +1 -1
- package/dist/utils/serialize.js.map +1 -1
- package/package.json +3 -3
- package/src/auth.ts +10 -2
- package/src/socket.ts +41 -8
- package/src/types/utils.ts +10 -2
- package/src/utils/messaging.ts +5 -1
- package/src/utils/serialize.ts +2 -1
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,aAAa;AACb,MAAM,UAAU,QAAQ,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,aAAa;AACb,MAAM,UAAU,QAAQ,CACpB,MAAiB,EACjB,GAAY,EACZ,EAAiB;IAEjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,UAAU,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;QAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,OAAO,YAAY,IAAI,CAAC,CAAC,CAAC;YAC5G,QAAQ,EAAE,CAAC;QACf,CAAC,EAAE,YAAY,CAAC,CAAC;QACjB,MAAM,aAAa,GAAG,CAAC,EAA0B,EAAQ,EAAE;YACvD,IAAI;gBACA,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;oBACrC,IAAI,UAAU;wBAAE,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC,CAAC;;wBACxF,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC;iBACpF;gBACD,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE;oBAC7B,OAAO,MAAM,CACT,IAAI,KAAK,CACL,uDAAuD,OAAO,SAAS,OAAO,CAAC,OAAO,EAAE,CAC3F,CACJ,CAAC;iBACL;gBACD,IAAI,UAAU,EAAE;oBACZ,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,EAAE;wBACrB,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC;qBACpF;oBACD,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE;wBACnB,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC,CAAC;qBACnF;iBACJ;gBACD,IAAI,OAAO,CAAC,KAAK,EAAE;oBACf,OAAO,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;iBAClD;gBACD,MAAM,QAAQ,GAAG,OAAO,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACnF,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;aAChD;YAAC,OAAO,EAAE,EAAE;gBACT,MAAM,CAAC,EAAE,CAAC,CAAC;aACd;oBAAS;gBACN,QAAQ,EAAE,CAAC;aACd;QACL,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,GAAS,EAAE;YACxB,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACpD,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/socket.js
CHANGED
|
@@ -281,7 +281,8 @@ export class RpcSocket {
|
|
|
281
281
|
}
|
|
282
282
|
/** 结束 */
|
|
283
283
|
destroy() {
|
|
284
|
-
if (this.__socket &&
|
|
284
|
+
if (this.__socket &&
|
|
285
|
+
(this.__socket.readyState === this.__socket.CONNECTING || this.__socket.readyState === this.__socket.OPEN)) {
|
|
285
286
|
this.__socket.close(1000);
|
|
286
287
|
this.__socket = undefined;
|
|
287
288
|
}
|
package/dist/socket.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"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"}
|
package/dist/types/utils.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export type Methods<T> = {
|
|
|
13
13
|
}[keyof T] & string;
|
|
14
14
|
/** 提取类型中的通知 */
|
|
15
15
|
export type Notifications<T> = {
|
|
16
|
-
[P in keyof T]: T[P] extends (...args: any[]) => infer R ?
|
|
16
|
+
[P in keyof T]: T[P] extends (...args: any[]) => infer R ? IsNotificationReturn<R> extends true ? P : never : never;
|
|
17
17
|
}[keyof T] & string;
|
|
18
18
|
/** 提取类型中的订阅主题 */
|
|
19
19
|
export type Subjects<T> = {
|
|
@@ -22,7 +22,7 @@ export type Subjects<T> = {
|
|
|
22
22
|
/** RPC 调用的参数 */
|
|
23
23
|
export type RpcParameters<T> = T extends (...args: infer R) => any ? R : never;
|
|
24
24
|
/** RPC 调用的返回 */
|
|
25
|
-
export type RpcReturns<T> = T extends (...args: any[]) => infer R ?
|
|
25
|
+
export type RpcReturns<T> = T extends (...args: any[]) => infer R ? Awaited<R> extends ObservableLike<infer U> ? U : Awaited<R> : never;
|
|
26
26
|
/** RPC 调用函数的实现 */
|
|
27
27
|
type RpcField<T> = T extends (...args: infer P) => infer R ? Awaited<R> extends ObservableReturn ? (...args: P) => ObservableLike<RpcReturns<T>> | PromiseLike<ObservableLike<RpcReturns<T>>> : (...args: P) => RpcReturns<T> | PromiseLike<RpcReturns<T>> : never;
|
|
28
28
|
/** RPC 调用对象的实现 */
|
package/dist/types/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/types/utils.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/types/utils.ts"],"names":[],"mappings":";AA8DA,gBAAgB;AAChB,qBAAqB;AACrB,8CAA8C;AAC9C,0DAA0D;AAC1D,gDAAgD;AAChD,gEAAgE;AAChE,+CAA+C;AAC/C,mDAAmD;AACnD,6BAA6B;AAC7B,mEAAmE;AACnE,0DAA0D;AAC1D,+CAA+C;AAC/C,4DAA4D;AAC5D,8DAA8D;AAC9D,8CAA8C;AAC9C,2DAA2D;AAC3D,IAAI;AAEJ,uBAAuB;AACvB,wBAAwB;AACxB,6BAA6B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/utils/messaging.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,WAAW;AACX,MAAM,UAAU,IAAI,
|
|
1
|
+
{"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/utils/messaging.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,WAAW;AACX,MAAM,UAAU,IAAI,CAChB,MAAiB,EACjB,IAAO,EACP,IAA4C;IAE5C,MAAM,CAAC,IAAI,CACP,MAAM,CAAC;QACH,GAAG,IAAI;QACP,IAAI;KACP,CAAC,CACL,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/utils/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,WAAW;AACX,MAAM,UAAU,aAAa,CAAC,IAAoB;IAC9C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,IAAI,QAAQ;QAAE,OAAO,SAAS,CAAC;IACvD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI;QACA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAe,CAAC;QAC3C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC7D,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACvD,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACtD,OAAO,OAAO,CAAC;KAClB;IAAC,OAAO,EAAE,EAAE;QACT,OAAO,SAAS,CAAC;KACpB;AACL,CAAC;AAED,MAAM,WAAW,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAChD,cAAc;AACd,MAAM,UAAU,cAAc,CAAC,KAAc;IACzC,IAAI,KAAK,IAAI,IAAI;QACb,OAAO;YACH,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,EAAE;SACd,CAAC;IACN,IAAI,OAAO,KAAK,IAAI,QAAQ;QACxB,OAAO;YACH,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;SACzB,CAAC;IACN,IAAI;QACA,MAAM,OAAO,GAAG,CAAC,CAAE,KAAkC,CAAC,WAAW,CAAC,CAAC;QAClE,KAAkC,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;QACxD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,KAAuB,CAAC;QAC1E,OAAO;YACH,GAAG,IAAI;YACP,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YAC9B,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;SACtG,CAAC;KACL;YAAS;QACN,OAAQ,KAAkC,CAAC,WAAW,CAAC,CAAC;KAC3D;AACL,CAAC;AACD,eAAe;AACf,MAAM,UAAU,gBAAgB,CAAC,KAAmB;IAChD,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,IAAI,QAAQ;QAAE,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACxD,IAAI,EAAE,CAAC;IACP,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACvB,EAAE,GAAG,IAAI,cAAc,CACnB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EACtC,OAAO,CACV,CAAC;KACL;SAAM;QACH,EAAE,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;KAC3B;IACD,IAAI,IAAI,KAAK,EAAE,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/utils/serialize.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudpss/ubrpc",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.19",
|
|
4
4
|
"author": "CloudPSS",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -28,10 +28,10 @@
|
|
|
28
28
|
"test": "cross-env NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@cloudpss/ubjson": "~0.4.
|
|
31
|
+
"@cloudpss/ubjson": "~0.4.19",
|
|
32
32
|
"@types/ws": "^8.5.4",
|
|
33
33
|
"isomorphic-ws": "^5.0.0",
|
|
34
|
-
"rxjs": "^7.8.
|
|
34
|
+
"rxjs": "^7.8.1",
|
|
35
35
|
"uuid": "^9.0.0",
|
|
36
36
|
"ws": "^8.13.0"
|
|
37
37
|
},
|
package/src/auth.ts
CHANGED
|
@@ -6,7 +6,11 @@ import { VERSION } from './version.js';
|
|
|
6
6
|
const AUTH_TIMEOUT = 5000;
|
|
7
7
|
|
|
8
8
|
/** 接受认证消息 */
|
|
9
|
-
export function waitAuth(
|
|
9
|
+
export function waitAuth(
|
|
10
|
+
socket: WebSocket,
|
|
11
|
+
seq?: number,
|
|
12
|
+
id?: ConnectionID,
|
|
13
|
+
): Promise<[number, ConnectionID, RpcMetadata]> {
|
|
10
14
|
return new Promise((resolve, reject) => {
|
|
11
15
|
const isResponse = seq != null && id != null;
|
|
12
16
|
const timeout = setTimeout(() => {
|
|
@@ -21,7 +25,11 @@ export function waitAuth(socket: WebSocket, seq?: number, id?: ConnectionID): Pr
|
|
|
21
25
|
else return reject(new Error(`Failed to authenticate, bad request from client`));
|
|
22
26
|
}
|
|
23
27
|
if (payload.version !== VERSION) {
|
|
24
|
-
return reject(
|
|
28
|
+
return reject(
|
|
29
|
+
new Error(
|
|
30
|
+
`Failed to authenticate, version not match, expected ${VERSION}, got ${payload.version}`,
|
|
31
|
+
),
|
|
32
|
+
);
|
|
25
33
|
}
|
|
26
34
|
if (isResponse) {
|
|
27
35
|
if (payload.seq !== seq) {
|
package/src/socket.ts
CHANGED
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
import type WebSocket from 'isomorphic-ws';
|
|
2
2
|
import { from, Observable, Subscriber, Subscription } from 'rxjs';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
3
|
+
import type {
|
|
4
|
+
ConnectionID,
|
|
5
|
+
RpcCallPayload,
|
|
6
|
+
RpcMetadata,
|
|
7
|
+
RpcNotifyPayload,
|
|
8
|
+
RpcPayload,
|
|
9
|
+
RpcSubscribePayload,
|
|
10
|
+
} from './types/payload.js';
|
|
11
|
+
import type {
|
|
12
|
+
Methods,
|
|
13
|
+
Notifications,
|
|
14
|
+
ObservableLike,
|
|
15
|
+
RpcObject,
|
|
16
|
+
RpcParameters,
|
|
17
|
+
RpcReturns,
|
|
18
|
+
Subjects,
|
|
19
|
+
} from './types/utils.js';
|
|
5
20
|
import { send } from './utils/messaging.js';
|
|
6
21
|
import { decodePayload, deserializeError, serializeError } from './utils/serialize.js';
|
|
7
22
|
import { ready } from './utils/websocket.js';
|
|
@@ -233,7 +248,10 @@ export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
|
|
|
233
248
|
}
|
|
234
249
|
}
|
|
235
250
|
/** 发送数据 */
|
|
236
|
-
protected async sendPayload<T extends RpcPayload['type']>(
|
|
251
|
+
protected async sendPayload<T extends RpcPayload['type']>(
|
|
252
|
+
type: T,
|
|
253
|
+
info: Omit<RpcPayload & { type: T }, 'type'>,
|
|
254
|
+
): Promise<void> {
|
|
237
255
|
await this.ready;
|
|
238
256
|
send(this.socket, type, info);
|
|
239
257
|
}
|
|
@@ -245,9 +263,15 @@ export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
|
|
|
245
263
|
this.seq += 2;
|
|
246
264
|
return seq;
|
|
247
265
|
}
|
|
248
|
-
private readonly pendingCalls = new Map<
|
|
266
|
+
private readonly pendingCalls = new Map<
|
|
267
|
+
number,
|
|
268
|
+
[resolve: (result: unknown) => void, reject: (error: Error) => void]
|
|
269
|
+
>();
|
|
249
270
|
/** 调用远程方法 */
|
|
250
|
-
call<TMethod extends Methods<TRemote>>(
|
|
271
|
+
call<TMethod extends Methods<TRemote>>(
|
|
272
|
+
method: TMethod,
|
|
273
|
+
...args: RpcParameters<TRemote[TMethod]>
|
|
274
|
+
): Promise<RpcReturns<TRemote[TMethod]>> {
|
|
251
275
|
return new Promise((resolve, reject) => {
|
|
252
276
|
const seq = this.nextSeq();
|
|
253
277
|
void this.sendPayload('call', { seq, method, args });
|
|
@@ -255,14 +279,20 @@ export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
|
|
|
255
279
|
});
|
|
256
280
|
}
|
|
257
281
|
/** 调用远程方法,放弃返回值 */
|
|
258
|
-
notify<TNotification extends Notifications<TRemote>>(
|
|
282
|
+
notify<TNotification extends Notifications<TRemote>>(
|
|
283
|
+
method: TNotification,
|
|
284
|
+
...args: RpcParameters<TRemote[TNotification]>
|
|
285
|
+
): void {
|
|
259
286
|
const seq = this.nextSeq();
|
|
260
287
|
void this.sendPayload('notify', { seq, method, args });
|
|
261
288
|
}
|
|
262
289
|
|
|
263
290
|
private readonly pendingSubscriptions = new Map<number, Subscriber<unknown>>();
|
|
264
291
|
/** 调用远程订阅 */
|
|
265
|
-
subscribe<TSubject extends Subjects<TRemote>>(
|
|
292
|
+
subscribe<TSubject extends Subjects<TRemote>>(
|
|
293
|
+
method: TSubject,
|
|
294
|
+
...args: RpcParameters<TRemote[TSubject]>
|
|
295
|
+
): Observable<RpcReturns<TRemote[TSubject]>> {
|
|
266
296
|
return new Observable((subscriber) => {
|
|
267
297
|
const seq = this.nextSeq();
|
|
268
298
|
void this.sendPayload('subscribe', { seq, method, args });
|
|
@@ -275,7 +305,10 @@ export abstract class RpcSocket<TRemote extends {}, TLocal extends {}> {
|
|
|
275
305
|
}
|
|
276
306
|
/** 结束 */
|
|
277
307
|
destroy(): void {
|
|
278
|
-
if (
|
|
308
|
+
if (
|
|
309
|
+
this.__socket &&
|
|
310
|
+
(this.__socket.readyState === this.__socket.CONNECTING || this.__socket.readyState === this.__socket.OPEN)
|
|
311
|
+
) {
|
|
279
312
|
this.__socket.close(1000);
|
|
280
313
|
this.__socket = undefined;
|
|
281
314
|
}
|
package/src/types/utils.ts
CHANGED
|
@@ -26,7 +26,11 @@ export type Methods<T> = {
|
|
|
26
26
|
string;
|
|
27
27
|
/** 提取类型中的通知 */
|
|
28
28
|
export type Notifications<T> = {
|
|
29
|
-
[P in keyof T]: T[P] extends (...args: any[]) => infer R
|
|
29
|
+
[P in keyof T]: T[P] extends (...args: any[]) => infer R
|
|
30
|
+
? IsNotificationReturn<R> extends true
|
|
31
|
+
? P
|
|
32
|
+
: never
|
|
33
|
+
: never;
|
|
30
34
|
}[keyof T] &
|
|
31
35
|
string;
|
|
32
36
|
/** 提取类型中的订阅主题 */
|
|
@@ -38,7 +42,11 @@ export type Subjects<T> = {
|
|
|
38
42
|
/** RPC 调用的参数 */
|
|
39
43
|
export type RpcParameters<T> = T extends (...args: infer R) => any ? R : never;
|
|
40
44
|
/** RPC 调用的返回 */
|
|
41
|
-
export type RpcReturns<T> = T extends (...args: any[]) => infer R
|
|
45
|
+
export type RpcReturns<T> = T extends (...args: any[]) => infer R
|
|
46
|
+
? Awaited<R> extends ObservableLike<infer U>
|
|
47
|
+
? U
|
|
48
|
+
: Awaited<R>
|
|
49
|
+
: never;
|
|
42
50
|
|
|
43
51
|
/** RPC 调用函数的实现 */
|
|
44
52
|
type RpcField<T> = T extends (...args: infer P) => infer R
|
package/src/utils/messaging.ts
CHANGED
|
@@ -3,7 +3,11 @@ import { encode } from '@cloudpss/ubjson';
|
|
|
3
3
|
import type { RpcPayload } from '../types/payload.js';
|
|
4
4
|
|
|
5
5
|
/** 发送消息 */
|
|
6
|
-
export function send<T extends RpcPayload['type']>(
|
|
6
|
+
export function send<T extends RpcPayload['type']>(
|
|
7
|
+
socket: WebSocket,
|
|
8
|
+
type: T,
|
|
9
|
+
info: Omit<RpcPayload & { type: T }, 'type'>,
|
|
10
|
+
): void {
|
|
7
11
|
socket.send(
|
|
8
12
|
encode({
|
|
9
13
|
...info,
|
package/src/utils/serialize.ts
CHANGED
|
@@ -58,7 +58,8 @@ export function deserializeError(error: RpcErrorLike): Error {
|
|
|
58
58
|
} else {
|
|
59
59
|
ex = new Error(message);
|
|
60
60
|
}
|
|
61
|
-
if (name !== ex?.name)
|
|
61
|
+
if (name !== ex?.name)
|
|
62
|
+
Object.defineProperty(ex, 'name', { value: String(name), configurable: true, writable: true });
|
|
62
63
|
Object.defineProperty(ex, 'stack', {
|
|
63
64
|
value: stack ? String(stack) : undefined,
|
|
64
65
|
configurable: true,
|