@cloudpss/ubrpc 0.6.18 → 0.6.20
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/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +8 -3
- package/dist/client.js.map +1 -1
- package/dist/server.d.ts +2 -7
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/dist/socket.d.ts +4 -1
- package/dist/socket.d.ts.map +1 -1
- package/dist/socket.js +13 -7
- package/dist/socket.js.map +1 -1
- package/dist/utils/ready.d.ts +20 -5
- package/dist/utils/ready.d.ts.map +1 -1
- package/dist/utils/ready.js +49 -27
- package/dist/utils/ready.js.map +1 -1
- package/package.json +3 -3
- package/src/client.ts +8 -3
- package/src/server.ts +3 -3
- package/src/socket.ts +13 -10
- package/src/utils/ready.ts +56 -30
package/dist/client.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export declare class RpcClientSocket<TRemote extends object, TLocal extends obje
|
|
|
11
11
|
/** @inheritdoc */
|
|
12
12
|
protected get local(): RpcObject<TLocal> | undefined;
|
|
13
13
|
readonly url: string;
|
|
14
|
+
/** 等待连接成功或失败 */
|
|
15
|
+
get connected(): Promise<void>;
|
|
14
16
|
/** @inheritdoc */
|
|
15
17
|
protected authSocket(): Promise<RpcMetadata>;
|
|
16
18
|
/** @inheritdoc */
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAQlD,6BAA6B;AAC7B,qBAAa,eAAe,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,CAAE,SAAQ,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;;IAC1G,2BAA2B;IAC3B,MAAM,CAAC,SAAS,EAAE,OAAO,SAAS,GAAG,IAAI,CAAQ;gBAErC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC;IAUhF,kBAAkB;IAClB,cAAuB,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAE5D;IACD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,kBAAkB;cACO,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAgB3D,kBAAkB;cACC,OAAO,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI;IAUhD,WAAW;IACX,SAAS,CAAC,OAAO,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAQlD,6BAA6B;AAC7B,qBAAa,eAAe,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,CAAE,SAAQ,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;;IAC1G,2BAA2B;IAC3B,MAAM,CAAC,SAAS,EAAE,OAAO,SAAS,GAAG,IAAI,CAAQ;gBAErC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC;IAUhF,kBAAkB;IAClB,cAAuB,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAE5D;IACD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,IAAI,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7B;IACD,kBAAkB;cACO,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAgB3D,kBAAkB;cACC,OAAO,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI;IAUhD,WAAW;IACX,SAAS,CAAC,OAAO,IAAI,IAAI;CAqB5B"}
|
package/dist/client.js
CHANGED
|
@@ -5,8 +5,8 @@ import { RpcSocket } from './socket.js';
|
|
|
5
5
|
import { send } from './utils/messaging.js';
|
|
6
6
|
import { VERSION } from './version.js';
|
|
7
7
|
import { logger } from './logger.js';
|
|
8
|
-
const INIT_RECONNECT_TIMEOUT =
|
|
9
|
-
const MAX_RECONNECT_TIMEOUT =
|
|
8
|
+
const INIT_RECONNECT_TIMEOUT = 250;
|
|
9
|
+
const MAX_RECONNECT_TIMEOUT = 10000;
|
|
10
10
|
/** 由 WS Client 建立的 RPC 连接 */
|
|
11
11
|
export class RpcClientSocket extends RpcSocket {
|
|
12
12
|
/** 建立连接使用的 WebSocket 实现 */
|
|
@@ -25,6 +25,10 @@ export class RpcClientSocket extends RpcSocket {
|
|
|
25
25
|
get local() {
|
|
26
26
|
return this.#local;
|
|
27
27
|
}
|
|
28
|
+
/** 等待连接成功或失败 */
|
|
29
|
+
get connected() {
|
|
30
|
+
return Promise.resolve(this.ready.value);
|
|
31
|
+
}
|
|
28
32
|
/** @inheritdoc */
|
|
29
33
|
async authSocket() {
|
|
30
34
|
logger('[%s] authenticating...', this.id);
|
|
@@ -57,12 +61,13 @@ export class RpcClientSocket extends RpcSocket {
|
|
|
57
61
|
socket.binaryType = 'arraybuffer';
|
|
58
62
|
this.socket = socket;
|
|
59
63
|
logger('[%s] connecting...', this.id);
|
|
60
|
-
this.
|
|
64
|
+
this.connected.then(() => {
|
|
61
65
|
logger('[%s] connected.', this.id);
|
|
62
66
|
this.#reconnectTimeout = INIT_RECONNECT_TIMEOUT;
|
|
63
67
|
}, () => {
|
|
64
68
|
if (this.destroyed)
|
|
65
69
|
return;
|
|
70
|
+
this.resetReady();
|
|
66
71
|
this.#reconnectTimeout = Math.min(this.#reconnectTimeout * 2, MAX_RECONNECT_TIMEOUT);
|
|
67
72
|
logger('[%s] connect failed. retrying in %dms...', this.id, this.#reconnectTimeout);
|
|
68
73
|
setTimeout(() => {
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -2,12 +2,7 @@ import { RpcSocket } from './socket.js';
|
|
|
2
2
|
import type { ConnectionID, RpcMetadata } from './types/payload.js';
|
|
3
3
|
import type { RpcObject } from './types/utils.js';
|
|
4
4
|
declare const kOnClose: unique symbol;
|
|
5
|
-
declare const kMetadata: unique symbol;
|
|
6
5
|
declare const kReplaceSocket: unique symbol;
|
|
7
|
-
/** 认证过的 socket */
|
|
8
|
-
type WebSocketWithMetadata = WebSocket & {
|
|
9
|
-
[kMetadata]: RpcMetadata;
|
|
10
|
-
};
|
|
11
6
|
/**
|
|
12
7
|
* 客户端认证方法
|
|
13
8
|
* @param metadata 客户端传入的认证元数据
|
|
@@ -38,7 +33,7 @@ export declare class RpcServer<TRemote extends object, TLocal extends object> {
|
|
|
38
33
|
protected authSocket(socket: WebSocket, tempId: string): Promise<[ConnectionID, RpcMetadata, RpcServerSocket<TRemote, TLocal> | undefined]>;
|
|
39
34
|
private readonly disconnectingSockets;
|
|
40
35
|
/** WebSocket 断开时调用 */
|
|
41
|
-
[kOnClose]
|
|
36
|
+
private [kOnClose];
|
|
42
37
|
}
|
|
43
38
|
/** 由 WS Server 建立的 RPC 连接 */
|
|
44
39
|
export declare class RpcServerSocket<TRemote extends object, TLocal extends object> extends RpcSocket<TRemote, TLocal> {
|
|
@@ -51,7 +46,7 @@ export declare class RpcServerSocket<TRemote extends object, TLocal extends obje
|
|
|
51
46
|
/** @inheritdoc */
|
|
52
47
|
protected onClose(ev: CloseEvent): void;
|
|
53
48
|
/** 替换 socket */
|
|
54
|
-
[kReplaceSocket]
|
|
49
|
+
private [kReplaceSocket];
|
|
55
50
|
}
|
|
56
51
|
export {};
|
|
57
52
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAKlD,QAAA,MAAM,QAAQ,eAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAKlD,QAAA,MAAM,QAAQ,eAAyB,CAAC;AAExC,QAAA,MAAM,cAAc,eAA+B,CAAC;AAIpD;;;;;;;GAOG;AACH,KAAK,sBAAsB,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,IAAI,CACzE,QAAQ,EAAE,WAAW,EACrB,EAAE,EAAE,YAAY,EAChB,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,SAAS,KACnD,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAIxC,8BAA8B;AAC9B,qBAAa,SAAS,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM;IAI5D,cAAc;IACd,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC;;IAH/D,iBAAiB;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC;IAC7F,cAAc;IACL,aAAa,GAAE,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAc;IAUhF,kBAAkB;IAClB,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjF,gBAAgB;IAChB,SAAS,CAAC,QAAQ,CAAC,QAAQ,sDAA6D;IACxF,gBAAgB;IAChB,IAAI,OAAO,IAAI,WAAW,CAAC,YAAY,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAEzE;IAED,kCAAkC;IAC5B,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAuB3E,YAAY;cACI,UAAU,CACtB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;IAqCrF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA0D;IAC/F,sBAAsB;IACtB,OAAO,CAAC,CAAC,QAAQ,CAAC;CAgBrB;AAED,6BAA6B;AAC7B,qBAAa,eAAe,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,CAAE,SAAQ,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAGtG,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;gBAD3C,EAAE,EAAE,YAAY,EACP,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAK/C,kBAAkB;IAElB,SAAS,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAG5C,kBAAkB;IAClB,cAAuB,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAE5D;IACD,kBAAkB;cACC,OAAO,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI;IAIhD,gBAAgB;YACF,CAAC,cAAc,CAAC;CAIjC"}
|
package/dist/server.js
CHANGED
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACxC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC1C,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAkBpD,IAAI,SAAS,GAAG,CAAC,CAAC;AAElB,8BAA8B;AAC9B,MAAM,OAAO,SAAS;IAClB;IACI,iBAAiB;IACjB,KAA6F;IAC7F,cAAc;IACL,gBAAyD,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;QAAnE,kBAAa,GAAb,aAAa,CAAsD;QAahF,gBAAgB;QACG,aAAQ,GAAG,IAAI,GAAG,EAAkD,CAAC;QAuEvE,yBAAoB,GAAG,IAAI,GAAG,EAA+C,CAAC;QAnF3F,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QAC3B,CAAC;aAAM,IAAI,OAAO,KAAK,IAAI,UAAU,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,GAAG,KAAwE,CAAC;QAC1F,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;QAC7B,CAAC;IACL,CAAC;IAMD,gBAAgB;IAChB,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,OAAO,CAAC,MAAiB;QAC3B,MAAM,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC;QAClC,MAAM,CAAC,GAAG,MAA+B,CAAC;QAC1C,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,cAAc,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7E,CAAC,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;QACxB,IAAI,MAAM,GAAG,cAAc,CAAC;QAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;YAC1C,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBACd,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACrC,YAAY,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACL,CAAC;QACD,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,YAAY;IACF,KAAK,CAAC,UAAU,CACtB,MAAiB,EACjB,MAAc;QAEd,IAAI,GAAG,EAAE,EAAE,EAAE,cAAc,CAAC;QAC5B,IAAI,CAAC;YACD,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;YACzC,CAAC,GAAG,EAAE,EAAE,EAAE,cAAc,CAAC,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnD,MAAM,CAAC,2CAA2C,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;YAChF,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3E,MAAM,CAAC,wCAAwC,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;YACpE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;gBACjB,GAAG;gBACH,EAAE;gBACF,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,aAAa;aAC1B,CAAC,CAAC;YACH,OAAO,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACV,MAAM,CAAC,kDAAkD,EAAE,EAAE,IAAI,MAAM,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;YAC7F,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;oBACjB,GAAG;oBACH,EAAE;oBACF,OAAO,EAAE,OAAO;oBAChB,QAAQ,EAAE,EAAE;oBACZ,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC;iBAC5B,CAAC,CAAC;YACP,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE;oBAClB,GAAG,EAAE,CAAC;oBACN,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC;iBAC5B,CAAC,CAAC;YACP,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,EAAE,CAAC;QACb,CAAC;IACL,CAAC;IAGD,sBAAsB;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/socket.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import type { ConnectionID, RpcCallPayload, RpcMetadata, RpcNotifyPayload, RpcPayload, RpcSubscribePayload } from './types/payload.js';
|
|
3
3
|
import type { Methods, Notifications, RpcObject, RpcParameters, RpcReturns, Subjects } from './types/utils.js';
|
|
4
|
+
import { ReadyPromise } from './utils/ready.js';
|
|
4
5
|
/** RPC 连接 */
|
|
5
6
|
export declare abstract class RpcSocket<TRemote extends object, TLocal extends object> {
|
|
6
7
|
#private;
|
|
@@ -19,7 +20,9 @@ export declare abstract class RpcSocket<TRemote extends object, TLocal extends o
|
|
|
19
20
|
/** 作为底层传输的 WebSocket */
|
|
20
21
|
get socket(): WebSocket;
|
|
21
22
|
protected set socket(value: WebSocket);
|
|
22
|
-
protected
|
|
23
|
+
protected ready: ReadyPromise;
|
|
24
|
+
/** 重置 ready Promise */
|
|
25
|
+
protected resetReady(): void;
|
|
23
26
|
/** 初始化 WebSocket */
|
|
24
27
|
protected initSocket(oldValue: WebSocket | undefined, newValue: WebSocket): Promise<void>;
|
|
25
28
|
/** 认证 WebSocket */
|
package/dist/socket.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,UAAU,EAAqB,MAAM,MAAM,CAAC;AAC3D,OAAO,KAAK,EACR,YAAY,EACZ,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACR,OAAO,EACP,aAAa,EAEb,SAAS,EACT,aAAa,EACb,UAAU,EACV,QAAQ,EACX,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"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"}
|
package/dist/socket.js
CHANGED
|
@@ -3,12 +3,13 @@ import { from, Observable } from 'rxjs';
|
|
|
3
3
|
import { send } from './utils/messaging.js';
|
|
4
4
|
import { decodePayload, deserializeError, serializeError } from './utils/serialize.js';
|
|
5
5
|
import { logger } from './logger.js';
|
|
6
|
-
import {
|
|
6
|
+
import { ReadyPromise } from './utils/ready.js';
|
|
7
7
|
import { shouldReconnectWebSocket, WebSocketAppCode } from './codes.js';
|
|
8
8
|
/** RPC 连接 */
|
|
9
9
|
export class RpcSocket {
|
|
10
10
|
constructor(id) {
|
|
11
11
|
this.id = id;
|
|
12
|
+
this.ready = new ReadyPromise();
|
|
12
13
|
this.#handlers = Object.freeze({
|
|
13
14
|
open: (ev) => this.onOpen(ev),
|
|
14
15
|
close: (ev) => this.onClose(ev),
|
|
@@ -21,7 +22,6 @@ export class RpcSocket {
|
|
|
21
22
|
this.#pendingCalls = new Map();
|
|
22
23
|
this.#pendingSubscriptions = new Map();
|
|
23
24
|
this.#destroyed = false;
|
|
24
|
-
makeReady(this);
|
|
25
25
|
}
|
|
26
26
|
/** 本地认证信息 */
|
|
27
27
|
get localMetadata() {
|
|
@@ -49,10 +49,16 @@ export class RpcSocket {
|
|
|
49
49
|
throw new Error(`RPC Socket destroyed.`);
|
|
50
50
|
if (this.#socket === value)
|
|
51
51
|
return;
|
|
52
|
-
|
|
52
|
+
this.resetReady();
|
|
53
53
|
const oldValue = this.#socket;
|
|
54
54
|
this.#socket = value;
|
|
55
|
-
|
|
55
|
+
this.ready.settle(this.initSocket(oldValue, value));
|
|
56
|
+
}
|
|
57
|
+
/** 重置 ready Promise */
|
|
58
|
+
resetReady() {
|
|
59
|
+
if (!this.ready.settled)
|
|
60
|
+
return;
|
|
61
|
+
this.ready = new ReadyPromise();
|
|
56
62
|
}
|
|
57
63
|
#handlers;
|
|
58
64
|
/** 初始化 WebSocket */
|
|
@@ -89,7 +95,7 @@ export class RpcSocket {
|
|
|
89
95
|
onError(ev) {
|
|
90
96
|
logger('[%s] socket error: %o', this.id, ev);
|
|
91
97
|
this._remoteMetadata = undefined;
|
|
92
|
-
|
|
98
|
+
this.resetReady();
|
|
93
99
|
}
|
|
94
100
|
/** 响应 WebSocket open */
|
|
95
101
|
onOpen(_ev) {
|
|
@@ -104,7 +110,7 @@ export class RpcSocket {
|
|
|
104
110
|
this.destroy();
|
|
105
111
|
}
|
|
106
112
|
else {
|
|
107
|
-
|
|
113
|
+
this.resetReady();
|
|
108
114
|
}
|
|
109
115
|
}
|
|
110
116
|
/** 响应 WebSocket message */
|
|
@@ -247,7 +253,7 @@ export class RpcSocket {
|
|
|
247
253
|
async sendPayload(type, info) {
|
|
248
254
|
if (this.#destroyed)
|
|
249
255
|
throw new Error(`RPC Socket destroyed.`);
|
|
250
|
-
await this.ready;
|
|
256
|
+
await this.ready.value;
|
|
251
257
|
send(this.socket, type, info);
|
|
252
258
|
}
|
|
253
259
|
/** 获取下一个序列号 */
|
package/dist/socket.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/ready.d.ts
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
/** Promise Status */
|
|
2
|
+
type PromiseStatus = 'pending' | 'fulfilled' | 'rejected';
|
|
3
|
+
/** Ready Promise */
|
|
4
|
+
export declare class ReadyPromise {
|
|
5
|
+
#private;
|
|
6
|
+
constructor();
|
|
7
|
+
/** Resolve the promise */
|
|
8
|
+
resolve(): void;
|
|
9
|
+
/** Reject the promise */
|
|
10
|
+
reject(reason: Error): void;
|
|
11
|
+
/** Settle the promise by provided promise */
|
|
12
|
+
settle(p: Promise<void>): void;
|
|
13
|
+
/** Get the status of the promise */
|
|
14
|
+
get status(): PromiseStatus;
|
|
15
|
+
/** Check if the promise is settled */
|
|
16
|
+
get settled(): boolean;
|
|
17
|
+
/** Get the underlying promise */
|
|
18
|
+
get value(): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
6
21
|
//# sourceMappingURL=ready.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ready.d.ts","sourceRoot":"","sources":["../../src/utils/ready.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ready.d.ts","sourceRoot":"","sources":["../../src/utils/ready.ts"],"names":[],"mappings":"AAEA,qBAAqB;AACrB,KAAK,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;AAC1D,oBAAoB;AACpB,qBAAa,YAAY;;;IAoBrB,0BAA0B;IAC1B,OAAO,IAAI,IAAI;IAMf,yBAAyB;IACzB,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI;IAM3B,6CAA6C;IAC7C,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9B,oCAAoC;IACpC,IAAI,MAAM,IAAI,aAAa,CAE1B;IAED,sCAAsC;IACtC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,iCAAiC;IACjC,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAEzB;CACJ"}
|
package/dist/utils/ready.js
CHANGED
|
@@ -1,29 +1,51 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
if (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
1
|
+
/** Ready Promise */
|
|
2
|
+
export class ReadyPromise {
|
|
3
|
+
constructor() {
|
|
4
|
+
let resolve, reject;
|
|
5
|
+
const p = new Promise((res, rej) => {
|
|
6
|
+
resolve = res;
|
|
7
|
+
reject = rej;
|
|
8
|
+
});
|
|
9
|
+
p.catch(() => {
|
|
10
|
+
// Avoid unhandled rejection
|
|
11
|
+
});
|
|
12
|
+
this.#value = p;
|
|
13
|
+
this.#resolve = resolve;
|
|
14
|
+
this.#reject = reject;
|
|
15
|
+
}
|
|
16
|
+
#value;
|
|
17
|
+
#resolve;
|
|
18
|
+
#reject;
|
|
19
|
+
#status = 'pending';
|
|
20
|
+
/** Resolve the promise */
|
|
21
|
+
resolve() {
|
|
22
|
+
if (this.#status !== 'pending')
|
|
23
|
+
return;
|
|
24
|
+
this.#status = 'fulfilled';
|
|
25
|
+
this.#resolve();
|
|
26
|
+
}
|
|
27
|
+
/** Reject the promise */
|
|
28
|
+
reject(reason) {
|
|
29
|
+
if (this.#status !== 'pending')
|
|
30
|
+
return;
|
|
31
|
+
this.#status = 'rejected';
|
|
32
|
+
this.#reject(reason);
|
|
33
|
+
}
|
|
34
|
+
/** Settle the promise by provided promise */
|
|
35
|
+
settle(p) {
|
|
36
|
+
p.then(() => this.resolve(), (err) => this.reject(err));
|
|
37
|
+
}
|
|
38
|
+
/** Get the status of the promise */
|
|
39
|
+
get status() {
|
|
40
|
+
return this.#status;
|
|
41
|
+
}
|
|
42
|
+
/** Check if the promise is settled */
|
|
43
|
+
get settled() {
|
|
44
|
+
return this.#status !== 'pending';
|
|
45
|
+
}
|
|
46
|
+
/** Get the underlying promise */
|
|
47
|
+
get value() {
|
|
48
|
+
return this.#value;
|
|
49
|
+
}
|
|
28
50
|
}
|
|
29
51
|
//# sourceMappingURL=ready.js.map
|
package/dist/utils/ready.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ready.js","sourceRoot":"","sources":["../../src/utils/ready.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ready.js","sourceRoot":"","sources":["../../src/utils/ready.ts"],"names":[],"mappings":"AAIA,oBAAoB;AACpB,MAAM,OAAO,YAAY;IACrB;QACI,IAAI,OAAkC,EAAE,MAAiC,CAAC;QAC1E,MAAM,CAAC,GAAG,IAAI,OAAO,CAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACrC,OAAO,GAAG,GAAG,CAAC;YACd,MAAM,GAAG,GAAG,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACT,4BAA4B;QAChC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,OAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,MAAO,CAAC;IAC3B,CAAC;IAEQ,MAAM,CAAiB;IACvB,QAAQ,CAAc;IACtB,OAAO,CAA8B;IAC9C,OAAO,GAAkB,SAAS,CAAC;IAEnC,0BAA0B;IAC1B,OAAO;QACH,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO;QACvC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;QAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,yBAAyB;IACzB,MAAM,CAAC,MAAa;QAChB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO;QACvC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,6CAA6C;IAC7C,MAAM,CAAC,CAAgB;QACnB,CAAC,CAAC,IAAI,CACF,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EACpB,CAAC,GAAU,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CACnC,CAAC;IACN,CAAC;IAED,oCAAoC;IACpC,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,sCAAsC;IACtC,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;IACtC,CAAC;IAED,iCAAiC;IACjC,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudpss/ubrpc",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.20",
|
|
4
4
|
"author": "CloudPSS",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"rxjs": "^7.8.2",
|
|
21
21
|
"uuid": "^13.0.0",
|
|
22
|
-
"@cloudpss/
|
|
23
|
-
"@cloudpss/
|
|
22
|
+
"@cloudpss/ubjson": "~0.6.20",
|
|
23
|
+
"@cloudpss/fetch": "~0.6.20"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/ws": "^8.18.1",
|
package/src/client.ts
CHANGED
|
@@ -8,8 +8,8 @@ import { send } from './utils/messaging.js';
|
|
|
8
8
|
import { VERSION } from './version.js';
|
|
9
9
|
import { logger } from './logger.js';
|
|
10
10
|
|
|
11
|
-
const INIT_RECONNECT_TIMEOUT =
|
|
12
|
-
const MAX_RECONNECT_TIMEOUT =
|
|
11
|
+
const INIT_RECONNECT_TIMEOUT = 250;
|
|
12
|
+
const MAX_RECONNECT_TIMEOUT = 10000;
|
|
13
13
|
|
|
14
14
|
/** 由 WS Client 建立的 RPC 连接 */
|
|
15
15
|
export class RpcClientSocket<TRemote extends object, TLocal extends object> extends RpcSocket<TRemote, TLocal> {
|
|
@@ -31,6 +31,10 @@ export class RpcClientSocket<TRemote extends object, TLocal extends object> exte
|
|
|
31
31
|
return this.#local;
|
|
32
32
|
}
|
|
33
33
|
readonly url: string;
|
|
34
|
+
/** 等待连接成功或失败 */
|
|
35
|
+
get connected(): Promise<void> {
|
|
36
|
+
return Promise.resolve(this.ready.value);
|
|
37
|
+
}
|
|
34
38
|
/** @inheritdoc */
|
|
35
39
|
protected override async authSocket(): Promise<RpcMetadata> {
|
|
36
40
|
logger('[%s] authenticating...', this.id);
|
|
@@ -65,13 +69,14 @@ export class RpcClientSocket<TRemote extends object, TLocal extends object> exte
|
|
|
65
69
|
socket.binaryType = 'arraybuffer';
|
|
66
70
|
this.socket = socket;
|
|
67
71
|
logger('[%s] connecting...', this.id);
|
|
68
|
-
this.
|
|
72
|
+
this.connected.then(
|
|
69
73
|
() => {
|
|
70
74
|
logger('[%s] connected.', this.id);
|
|
71
75
|
this.#reconnectTimeout = INIT_RECONNECT_TIMEOUT;
|
|
72
76
|
},
|
|
73
77
|
() => {
|
|
74
78
|
if (this.destroyed) return;
|
|
79
|
+
this.resetReady();
|
|
75
80
|
this.#reconnectTimeout = Math.min(this.#reconnectTimeout * 2, MAX_RECONNECT_TIMEOUT);
|
|
76
81
|
logger('[%s] connect failed. retrying in %dms...', this.id, this.#reconnectTimeout);
|
|
77
82
|
setTimeout(() => {
|
package/src/server.ts
CHANGED
|
@@ -123,7 +123,7 @@ export class RpcServer<TRemote extends object, TLocal extends object> {
|
|
|
123
123
|
|
|
124
124
|
private readonly disconnectingSockets = new Map<ConnectionID, ReturnType<typeof setTimeout>>();
|
|
125
125
|
/** WebSocket 断开时调用 */
|
|
126
|
-
[kOnClose](socket: RpcServerSocket<TRemote, TLocal>): void {
|
|
126
|
+
private [kOnClose](socket: RpcServerSocket<TRemote, TLocal>): void {
|
|
127
127
|
const delay = socket.destroyed ? 0 : 5000;
|
|
128
128
|
logger('[%s] socket closed, drop connection in %dms', socket.id, delay);
|
|
129
129
|
|
|
@@ -165,8 +165,8 @@ export class RpcServerSocket<TRemote extends object, TLocal extends object> exte
|
|
|
165
165
|
this.server[kOnClose](this);
|
|
166
166
|
}
|
|
167
167
|
/** 替换 socket */
|
|
168
|
-
async [kReplaceSocket](newSocket: WebSocketWithMetadata): Promise<void> {
|
|
168
|
+
private async [kReplaceSocket](newSocket: WebSocketWithMetadata): Promise<void> {
|
|
169
169
|
this.socket = newSocket;
|
|
170
|
-
|
|
170
|
+
await this.ready.value;
|
|
171
171
|
}
|
|
172
172
|
}
|
package/src/socket.ts
CHANGED
|
@@ -21,14 +21,12 @@ import type { ObservableStatus, PromiseCallbacks } from './types/callbacks.js';
|
|
|
21
21
|
import { send } from './utils/messaging.js';
|
|
22
22
|
import { decodePayload, deserializeError, serializeError } from './utils/serialize.js';
|
|
23
23
|
import { logger } from './logger.js';
|
|
24
|
-
import {
|
|
24
|
+
import { ReadyPromise } from './utils/ready.js';
|
|
25
25
|
import { shouldReconnectWebSocket, WebSocketAppCode } from './codes.js';
|
|
26
26
|
|
|
27
27
|
/** RPC 连接 */
|
|
28
28
|
export abstract class RpcSocket<TRemote extends object, TLocal extends object> {
|
|
29
|
-
constructor(readonly id: ConnectionID) {
|
|
30
|
-
makeReady(this);
|
|
31
|
-
}
|
|
29
|
+
constructor(readonly id: ConnectionID) {}
|
|
32
30
|
protected _localMetadata?: RpcMetadata;
|
|
33
31
|
protected _remoteMetadata?: RpcMetadata;
|
|
34
32
|
/** 本地认证信息 */
|
|
@@ -55,12 +53,17 @@ export abstract class RpcSocket<TRemote extends object, TLocal extends object> {
|
|
|
55
53
|
protected set socket(value: WebSocket) {
|
|
56
54
|
if (this.#destroyed) throw new Error(`RPC Socket destroyed.`);
|
|
57
55
|
if (this.#socket === value) return;
|
|
58
|
-
|
|
56
|
+
this.resetReady();
|
|
59
57
|
const oldValue = this.#socket;
|
|
60
58
|
this.#socket = value;
|
|
61
|
-
|
|
59
|
+
this.ready.settle(this.initSocket(oldValue, value));
|
|
60
|
+
}
|
|
61
|
+
protected ready = new ReadyPromise();
|
|
62
|
+
/** 重置 ready Promise */
|
|
63
|
+
protected resetReady(): void {
|
|
64
|
+
if (!this.ready.settled) return;
|
|
65
|
+
this.ready = new ReadyPromise();
|
|
62
66
|
}
|
|
63
|
-
protected readonly ready!: Promise<void>;
|
|
64
67
|
readonly #handlers = Object.freeze({
|
|
65
68
|
open: (ev: Event) => this.onOpen(ev),
|
|
66
69
|
close: (ev: CloseEvent) => this.onClose(ev),
|
|
@@ -102,7 +105,7 @@ export abstract class RpcSocket<TRemote extends object, TLocal extends object> {
|
|
|
102
105
|
protected onError(ev: ErrorEvent | Event): void {
|
|
103
106
|
logger('[%s] socket error: %o', this.id, ev);
|
|
104
107
|
this._remoteMetadata = undefined;
|
|
105
|
-
|
|
108
|
+
this.resetReady();
|
|
106
109
|
}
|
|
107
110
|
/** 响应 WebSocket open */
|
|
108
111
|
protected onOpen(_ev: Event): void {
|
|
@@ -116,7 +119,7 @@ export abstract class RpcSocket<TRemote extends object, TLocal extends object> {
|
|
|
116
119
|
if (!shouldReconnectWebSocket(code)) {
|
|
117
120
|
this.destroy();
|
|
118
121
|
} else {
|
|
119
|
-
|
|
122
|
+
this.resetReady();
|
|
120
123
|
}
|
|
121
124
|
}
|
|
122
125
|
/** 响应 WebSocket message */
|
|
@@ -250,7 +253,7 @@ export abstract class RpcSocket<TRemote extends object, TLocal extends object> {
|
|
|
250
253
|
info: Omit<RpcPayload & { type: T }, 'type'>,
|
|
251
254
|
): Promise<void> {
|
|
252
255
|
if (this.#destroyed) throw new Error(`RPC Socket destroyed.`);
|
|
253
|
-
await this.ready;
|
|
256
|
+
await this.ready.value;
|
|
254
257
|
send(this.socket, type, info);
|
|
255
258
|
}
|
|
256
259
|
/** 序列号 */
|
package/src/utils/ready.ts
CHANGED
|
@@ -1,36 +1,62 @@
|
|
|
1
1
|
import type { PromiseCallbacks } from '../types/callbacks.js';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/** Promise Status */
|
|
4
|
+
type PromiseStatus = 'pending' | 'fulfilled' | 'rejected';
|
|
5
5
|
/** Ready Promise */
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const t = target as WithReady<T>;
|
|
15
|
-
|
|
16
|
-
const existing = t[kReadyCallbacks];
|
|
17
|
-
if (existing != null) return existing;
|
|
18
|
-
|
|
19
|
-
let callbacks: PromiseCallbacks<void> | undefined;
|
|
20
|
-
const ready = new Promise<void>((resolve, reject) => {
|
|
21
|
-
callbacks = [resolve, reject];
|
|
22
|
-
});
|
|
23
|
-
if (callbacks == null) throw new Error(`Bad promise`);
|
|
24
|
-
t[kReadyCallbacks] = callbacks;
|
|
25
|
-
ready
|
|
26
|
-
.catch(() => {
|
|
6
|
+
export class ReadyPromise {
|
|
7
|
+
constructor() {
|
|
8
|
+
let resolve: PromiseCallbacks<void>[0], reject: PromiseCallbacks<void>[1];
|
|
9
|
+
const p = new Promise<void>((res, rej) => {
|
|
10
|
+
resolve = res;
|
|
11
|
+
reject = rej;
|
|
12
|
+
});
|
|
13
|
+
p.catch(() => {
|
|
27
14
|
// Avoid unhandled rejection
|
|
28
|
-
})
|
|
29
|
-
.finally(() => {
|
|
30
|
-
if (t[kReadyCallbacks] === callbacks) {
|
|
31
|
-
t[kReadyCallbacks] = undefined;
|
|
32
|
-
}
|
|
33
15
|
});
|
|
34
|
-
|
|
35
|
-
|
|
16
|
+
this.#value = p;
|
|
17
|
+
this.#resolve = resolve!;
|
|
18
|
+
this.#reject = reject!;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
readonly #value!: Promise<void>;
|
|
22
|
+
readonly #resolve!: () => void;
|
|
23
|
+
readonly #reject!: (reason?: unknown) => void;
|
|
24
|
+
#status: PromiseStatus = 'pending';
|
|
25
|
+
|
|
26
|
+
/** Resolve the promise */
|
|
27
|
+
resolve(): void {
|
|
28
|
+
if (this.#status !== 'pending') return;
|
|
29
|
+
this.#status = 'fulfilled';
|
|
30
|
+
this.#resolve();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** Reject the promise */
|
|
34
|
+
reject(reason: Error): void {
|
|
35
|
+
if (this.#status !== 'pending') return;
|
|
36
|
+
this.#status = 'rejected';
|
|
37
|
+
this.#reject(reason);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** Settle the promise by provided promise */
|
|
41
|
+
settle(p: Promise<void>): void {
|
|
42
|
+
p.then(
|
|
43
|
+
() => this.resolve(),
|
|
44
|
+
(err: Error) => this.reject(err),
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** Get the status of the promise */
|
|
49
|
+
get status(): PromiseStatus {
|
|
50
|
+
return this.#status;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** Check if the promise is settled */
|
|
54
|
+
get settled(): boolean {
|
|
55
|
+
return this.#status !== 'pending';
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** Get the underlying promise */
|
|
59
|
+
get value(): Promise<void> {
|
|
60
|
+
return this.#value;
|
|
61
|
+
}
|
|
36
62
|
}
|