@opensumi/ide-connection 2.27.3-next-1706520813.0 → 2.27.3-rc-1706687185.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/lib/browser/ws-channel-handler.d.ts +9 -7
- package/lib/browser/ws-channel-handler.d.ts.map +1 -1
- package/lib/browser/ws-channel-handler.js +65 -64
- package/lib/browser/ws-channel-handler.js.map +1 -1
- package/lib/common/connect.d.ts +6 -57
- package/lib/common/connect.d.ts.map +1 -1
- package/lib/common/connect.js +9 -168
- package/lib/common/connect.js.map +1 -1
- package/lib/common/connection/buffers.d.ts +55 -0
- package/lib/common/connection/buffers.d.ts.map +1 -0
- package/lib/common/connection/buffers.js +244 -0
- package/lib/common/connection/buffers.js.map +1 -0
- package/lib/common/connection/drivers/base.d.ts +9 -0
- package/lib/common/connection/drivers/base.d.ts.map +1 -0
- package/lib/common/connection/drivers/base.js +11 -0
- package/lib/common/connection/drivers/base.js.map +1 -0
- package/lib/common/connection/drivers/empty.d.ts +8 -0
- package/lib/common/connection/drivers/empty.d.ts.map +1 -0
- package/lib/common/connection/drivers/empty.js +21 -0
- package/lib/common/connection/drivers/empty.js.map +1 -0
- package/lib/common/connection/drivers/index.d.ts +6 -0
- package/lib/common/connection/drivers/index.d.ts.map +1 -0
- package/lib/common/connection/drivers/index.js +9 -0
- package/lib/common/connection/drivers/index.js.map +1 -0
- package/lib/common/connection/drivers/node-message-port.d.ts +12 -0
- package/lib/common/connection/drivers/node-message-port.d.ts.map +1 -0
- package/lib/common/connection/drivers/node-message-port.js +31 -0
- package/lib/common/connection/drivers/node-message-port.js.map +1 -0
- package/lib/common/connection/drivers/reconnecting-websocket.d.ts +15 -0
- package/lib/common/connection/drivers/reconnecting-websocket.d.ts.map +1 -0
- package/lib/common/connection/drivers/reconnecting-websocket.js +83 -0
- package/lib/common/connection/drivers/reconnecting-websocket.js.map +1 -0
- package/lib/common/connection/drivers/socket.d.ts +17 -0
- package/lib/common/connection/drivers/socket.d.ts.map +1 -0
- package/lib/common/connection/drivers/socket.js +56 -0
- package/lib/common/connection/drivers/socket.js.map +1 -0
- package/lib/common/connection/drivers/stream-decoder.d.ts +67 -0
- package/lib/common/connection/drivers/stream-decoder.d.ts.map +1 -0
- package/lib/common/connection/drivers/stream-decoder.js +171 -0
- package/lib/common/connection/drivers/stream-decoder.js.map +1 -0
- package/lib/common/connection/drivers/utils.d.ts +12 -0
- package/lib/common/connection/drivers/utils.d.ts.map +1 -0
- package/lib/common/connection/drivers/utils.js +49 -0
- package/lib/common/connection/drivers/utils.js.map +1 -0
- package/lib/common/connection/drivers/ws-websocket.d.ts +11 -0
- package/lib/common/connection/drivers/ws-websocket.d.ts.map +1 -0
- package/lib/common/connection/drivers/ws-websocket.js +31 -0
- package/lib/common/connection/drivers/ws-websocket.js.map +1 -0
- package/lib/common/connection/index.d.ts +2 -0
- package/lib/common/connection/index.d.ts.map +1 -0
- package/lib/common/connection/index.js +5 -0
- package/lib/common/connection/index.js.map +1 -0
- package/lib/common/connection/types.d.ts +7 -0
- package/lib/common/connection/types.d.ts.map +1 -0
- package/lib/common/connection/types.js +3 -0
- package/lib/common/connection/types.js.map +1 -0
- package/lib/common/constants.d.ts +2 -0
- package/lib/common/constants.d.ts.map +1 -0
- package/lib/common/constants.js +5 -0
- package/lib/common/constants.js.map +1 -0
- package/lib/common/{rpcProtocol.d.ts → ext-rpc-protocol.d.ts} +10 -11
- package/lib/common/ext-rpc-protocol.d.ts.map +1 -0
- package/lib/common/{rpcProtocol.js → ext-rpc-protocol.js} +22 -19
- package/lib/common/ext-rpc-protocol.js.map +1 -0
- package/lib/common/index.d.ts +2 -1
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +2 -1
- package/lib/common/index.js.map +1 -1
- package/lib/common/proxy/base.d.ts +22 -0
- package/lib/common/proxy/base.d.ts.map +1 -0
- package/lib/common/proxy/base.js +47 -0
- package/lib/common/proxy/base.js.map +1 -0
- package/lib/common/proxy/index.d.ts +8 -0
- package/lib/common/proxy/index.d.ts.map +1 -0
- package/lib/common/proxy/index.js +12 -0
- package/lib/common/proxy/index.js.map +1 -0
- package/lib/common/proxy/legacy.d.ts +23 -0
- package/lib/common/proxy/legacy.d.ts.map +1 -0
- package/lib/common/proxy/legacy.js +183 -0
- package/lib/common/proxy/legacy.js.map +1 -0
- package/lib/common/rpc-service/center.d.ts +20 -0
- package/lib/common/rpc-service/center.d.ts.map +1 -0
- package/lib/common/rpc-service/center.js +100 -0
- package/lib/common/rpc-service/center.js.map +1 -0
- package/lib/common/rpc-service/index.d.ts +3 -0
- package/lib/common/rpc-service/index.d.ts.map +1 -0
- package/lib/common/rpc-service/index.js +6 -0
- package/lib/common/rpc-service/index.js.map +1 -0
- package/lib/common/rpc-service/stub.d.ts +15 -0
- package/lib/common/rpc-service/stub.d.ts.map +1 -0
- package/lib/common/rpc-service/stub.js +48 -0
- package/lib/common/rpc-service/stub.js.map +1 -0
- package/lib/common/types.d.ts +15 -0
- package/lib/common/types.d.ts.map +1 -0
- package/lib/common/types.js +9 -0
- package/lib/common/types.js.map +1 -0
- package/lib/common/utils.d.ts +4 -2
- package/lib/common/utils.d.ts.map +1 -1
- package/lib/common/utils.js +32 -9
- package/lib/common/utils.js.map +1 -1
- package/lib/common/ws-channel.d.ts +104 -27
- package/lib/common/ws-channel.d.ts.map +1 -1
- package/lib/common/ws-channel.js +96 -27
- package/lib/common/ws-channel.js.map +1 -1
- package/lib/node/common-channel-handler.d.ts +18 -16
- package/lib/node/common-channel-handler.d.ts.map +1 -1
- package/lib/node/common-channel-handler.js +42 -59
- package/lib/node/common-channel-handler.js.map +1 -1
- package/lib/node/index.d.ts +0 -3
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +0 -5
- package/lib/node/index.js.map +1 -1
- package/lib/node/ws.d.ts +1 -1
- package/lib/node/ws.d.ts.map +1 -1
- package/lib/node/ws.js +2 -0
- package/lib/node/ws.js.map +1 -1
- package/package.json +9 -7
- package/src/browser/ws-channel-handler.ts +82 -70
- package/src/common/connect.ts +7 -193
- package/src/common/connection/buffers.ts +284 -0
- package/src/common/connection/drivers/base.ts +15 -0
- package/src/common/connection/drivers/empty.ts +19 -0
- package/src/common/connection/drivers/index.ts +5 -0
- package/src/common/connection/drivers/node-message-port.ts +33 -0
- package/src/common/connection/drivers/reconnecting-websocket.ts +86 -0
- package/src/common/connection/drivers/socket.ts +62 -0
- package/src/common/connection/drivers/stream-decoder.ts +196 -0
- package/src/common/connection/drivers/utils.ts +52 -0
- package/src/common/connection/drivers/ws-websocket.ts +31 -0
- package/src/common/connection/index.ts +1 -0
- package/src/common/connection/types.ts +7 -0
- package/src/common/constants.ts +1 -0
- package/src/common/{rpcProtocol.ts → ext-rpc-protocol.ts} +43 -31
- package/src/common/index.ts +2 -1
- package/src/common/proxy/base.ts +67 -0
- package/src/common/proxy/index.ts +10 -0
- package/src/common/proxy/legacy.ts +200 -0
- package/src/common/rpc-service/center.ts +124 -0
- package/src/common/rpc-service/index.ts +2 -0
- package/src/common/rpc-service/stub.ts +49 -0
- package/src/common/types.ts +17 -0
- package/src/common/utils.ts +31 -8
- package/src/common/ws-channel.ts +175 -48
- package/src/node/common-channel-handler.ts +68 -80
- package/src/node/index.ts +0 -5
- package/src/node/ws.ts +3 -1
- package/lib/common/proxy.d.ts +0 -47
- package/lib/common/proxy.d.ts.map +0 -1
- package/lib/common/proxy.js +0 -272
- package/lib/common/proxy.js.map +0 -1
- package/lib/common/rpcProtocol.d.ts.map +0 -1
- package/lib/common/rpcProtocol.js.map +0 -1
- package/lib/node/connect.d.ts +0 -4
- package/lib/node/connect.d.ts.map +0 -1
- package/lib/node/connect.js +0 -9
- package/lib/node/connect.js.map +0 -1
- package/src/common/proxy.ts +0 -303
- package/src/node/connect.ts +0 -11
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/common/proxy/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAkC,MAAM,UAAU,CAAC;AAE5E,UAAU,eAAe;IACvB,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,8BAAsB,SAAS,CAAC,CAAC,SAAS,eAAe;IAUpC,MAAM,CAAC;IAT1B,SAAS,CAAC,YAAY,EAAE,GAAG,CAAM;IAEjC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IAExB,SAAS,CAAC,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAwB;IAEnE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;gBAEjB,MAAM,CAAC,4BAAgB,EAAE,MAAM,CAAC,EAAE,OAAO;IAK5D,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAUlD,MAAM,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI;IAWpB,aAAa,CAAC,OAAO,EAAE,cAAc;IAkB5C,QAAQ,CAAC,cAAc,IAAI,GAAG;IAE9B,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;CACrH"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProxyBase = void 0;
|
|
4
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
class ProxyBase {
|
|
7
|
+
constructor(target, logger) {
|
|
8
|
+
this.target = target;
|
|
9
|
+
this.proxyService = {};
|
|
10
|
+
this.connectionPromise = new ide_core_common_1.Deferred();
|
|
11
|
+
this.logger = logger || console;
|
|
12
|
+
}
|
|
13
|
+
// capture messages for opensumi devtools
|
|
14
|
+
capture(message) {
|
|
15
|
+
const capturer = (0, utils_1.getCapturer)();
|
|
16
|
+
if ((0, ide_core_common_1.isDefined)(capturer)) {
|
|
17
|
+
capturer(Object.assign(Object.assign({}, message), { engine: this.engine }));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
listen(connection) {
|
|
21
|
+
this.connection = connection;
|
|
22
|
+
if (this.target) {
|
|
23
|
+
this.listenService(this.target);
|
|
24
|
+
}
|
|
25
|
+
connection.listen();
|
|
26
|
+
this.connectionPromise.resolve();
|
|
27
|
+
}
|
|
28
|
+
listenService(service) {
|
|
29
|
+
if (this.connection) {
|
|
30
|
+
this.bindOnRequest(service, (service, prop) => {
|
|
31
|
+
this.proxyService[prop] = service[prop].bind(service);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
if (!this.target) {
|
|
36
|
+
this.target = {};
|
|
37
|
+
}
|
|
38
|
+
const methods = (0, utils_1.getServiceMethods)(service);
|
|
39
|
+
for (const method of methods) {
|
|
40
|
+
// `getServiceMethods` ensure that method is a function
|
|
41
|
+
this.target[method] = service[method].bind(service);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.ProxyBase = ProxyBase;
|
|
47
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/common/proxy/base.ts"],"names":[],"mappings":";;;AAAA,+DAAgE;AAGhE,oCAA4E;AAM5E,MAAsB,SAAS;IAU7B,YAAmB,MAAuB,EAAE,MAAgB;QAAzC,WAAM,GAAN,MAAM,CAAiB;QAThC,iBAAY,GAAQ,EAAE,CAAC;QAKvB,sBAAiB,GAAmB,IAAI,0BAAQ,EAAQ,CAAC;QAKjE,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC;IAClC,CAAC;IAED,yCAAyC;IAC/B,OAAO,CAAC,OAAyB;QACzC,MAAM,QAAQ,GAAG,IAAA,mBAAW,GAAE,CAAC;QAC/B,IAAI,IAAA,2BAAS,EAAC,QAAQ,CAAC,EAAE;YACvB,QAAQ,iCACH,OAAO,KACV,MAAM,EAAE,IAAI,CAAC,MAAM,IACnB,CAAC;SACJ;IACH,CAAC;IAED,MAAM,CAAC,UAAa;QAClB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACjC;QAED,UAAU,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAEM,aAAa,CAAC,OAAuB;QAC1C,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBAC5C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,MAAM,GAAG,EAAS,CAAC;aACzB;YAED,MAAM,OAAO,GAAG,IAAA,yBAAiB,EAAC,OAAO,CAAC,CAAC;YAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC5B,uDAAuD;gBACtD,IAAI,CAAC,MAAc,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC/D;SACF;IACH,CAAC;CAKF;AAzDD,8BAyDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/proxy/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AAEzB,8BAAsB,UAAU,CAAC,CAAC,GAAG,GAAG;IACtC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC;IAC7B,IAAI,MAAM,kBAET;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RPCService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
tslib_1.__exportStar(require("./legacy"), exports);
|
|
6
|
+
class RPCService {
|
|
7
|
+
get client() {
|
|
8
|
+
return this.rpcClient ? this.rpcClient[0] : undefined;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.RPCService = RPCService;
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/proxy/index.ts"],"names":[],"mappings":";;;;AAAA,mDAAyB;AAEzB,MAAsB,UAAU;IAI9B,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,CAAC;CACF;AAPD,gCAOC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { MessageConnection } from '@opensumi/vscode-jsonrpc';
|
|
2
|
+
import { IRPCServiceMap } from '../types';
|
|
3
|
+
import { ProxyBase } from './base';
|
|
4
|
+
export declare class ProxyLegacy extends ProxyBase<MessageConnection> {
|
|
5
|
+
engine: "legacy";
|
|
6
|
+
getInvokeProxy(): any;
|
|
7
|
+
get(target: any, p: PropertyKey): (...args: any[]) => Promise<any>;
|
|
8
|
+
protected bindOnRequest(service: IRPCServiceMap, cb?: ((service: IRPCServiceMap, prop: string) => void) | undefined): void;
|
|
9
|
+
/**
|
|
10
|
+
* 对于纯数组参数的情况,收到请求/通知后做展开操作
|
|
11
|
+
* 因为在通信层会为每个 rpc 调用添加一个 CancellationToken 参数
|
|
12
|
+
* 如果参数本身是数组, 在方法中如果使用 spread 运算符获取参数(...args),则会出现 [...args, MutableToken] 这种情况
|
|
13
|
+
* 所以发送请求时将这类参数统一再用数组包了一层,形如 [[...args]], 参考 {@link ProxyLegacy.get get} 方法
|
|
14
|
+
* 此时接收到的数组类参数固定长度为 2,且最后一项一定是 MutableToken
|
|
15
|
+
* @param args
|
|
16
|
+
* @returns args
|
|
17
|
+
*/
|
|
18
|
+
private serializeArguments;
|
|
19
|
+
private onRequest;
|
|
20
|
+
private onNotification;
|
|
21
|
+
listen(connection: MessageConnection): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=legacy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy.d.ts","sourceRoot":"","sources":["../../../src/common/proxy/legacy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAOnC,qBAAa,WAAY,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IAC3D,MAAM,WAAqB;IAEpB,cAAc,IAAI,GAAG;IAIrB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,aAEb,GAAG,EAAE;IA0D9B,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;IAiDnH;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;YAaZ,SAAS;IAmBvB,OAAO,CAAC,cAAc;IAQtB,MAAM,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;CAoB5C"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProxyLegacy = void 0;
|
|
4
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
5
|
+
const constants_1 = require("../constants");
|
|
6
|
+
const utils_1 = require("../utils");
|
|
7
|
+
const base_1 = require("./base");
|
|
8
|
+
class ProxyLegacy extends base_1.ProxyBase {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.engine = 'legacy';
|
|
12
|
+
}
|
|
13
|
+
getInvokeProxy() {
|
|
14
|
+
return new Proxy(this, this);
|
|
15
|
+
}
|
|
16
|
+
get(target, p) {
|
|
17
|
+
const prop = p.toString();
|
|
18
|
+
return async (...args) => {
|
|
19
|
+
await this.connectionPromise.promise;
|
|
20
|
+
let isSingleArray = false;
|
|
21
|
+
if (args.length === 1 && Array.isArray(args[0])) {
|
|
22
|
+
isSingleArray = true;
|
|
23
|
+
}
|
|
24
|
+
// 调用方法为 on 开头时,作为单项通知
|
|
25
|
+
if (prop.startsWith('on')) {
|
|
26
|
+
if (isSingleArray) {
|
|
27
|
+
this.connection.sendNotification(prop, [...args]);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this.connection.sendNotification(prop, ...args);
|
|
31
|
+
}
|
|
32
|
+
this.capture({ type: utils_1.MessageType.SendNotification, serviceMethod: prop, arguments: args });
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
let requestResult;
|
|
36
|
+
// generate a unique requestId to associate request and requestResult
|
|
37
|
+
const requestId = (0, ide_core_common_1.uuid)();
|
|
38
|
+
if (isSingleArray) {
|
|
39
|
+
requestResult = this.connection.sendRequest(prop, [...args]);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
requestResult = this.connection.sendRequest(prop, ...args);
|
|
43
|
+
}
|
|
44
|
+
this.capture({ type: utils_1.MessageType.SendRequest, requestId, serviceMethod: prop, arguments: args });
|
|
45
|
+
const result = await requestResult;
|
|
46
|
+
if (result.error) {
|
|
47
|
+
const error = new Error(result.data.message);
|
|
48
|
+
if (result.data.stack) {
|
|
49
|
+
error.stack = result.data.stack;
|
|
50
|
+
}
|
|
51
|
+
this.capture({
|
|
52
|
+
type: utils_1.MessageType.RequestResult,
|
|
53
|
+
status: utils_1.ResponseStatus.Fail,
|
|
54
|
+
requestId,
|
|
55
|
+
serviceMethod: prop,
|
|
56
|
+
error: result.data,
|
|
57
|
+
});
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
this.capture({
|
|
62
|
+
type: utils_1.MessageType.RequestResult,
|
|
63
|
+
status: utils_1.ResponseStatus.Success,
|
|
64
|
+
requestId,
|
|
65
|
+
serviceMethod: prop,
|
|
66
|
+
data: result.data,
|
|
67
|
+
});
|
|
68
|
+
return result.data;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
bindOnRequest(service, cb) {
|
|
74
|
+
if (this.connection) {
|
|
75
|
+
const connection = this.connection;
|
|
76
|
+
const methods = (0, utils_1.getServiceMethods)(service);
|
|
77
|
+
methods.forEach((method) => {
|
|
78
|
+
if (method.startsWith('on')) {
|
|
79
|
+
connection.onNotification(method, (...args) => {
|
|
80
|
+
this.onNotification(method, ...args);
|
|
81
|
+
this.capture({ type: utils_1.MessageType.OnNotification, serviceMethod: method, arguments: args });
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
connection.onRequest(method, (...args) => {
|
|
86
|
+
const requestId = (0, ide_core_common_1.uuid)();
|
|
87
|
+
const result = this.onRequest(method, ...args);
|
|
88
|
+
this.capture({ type: utils_1.MessageType.OnRequest, requestId, serviceMethod: method, arguments: args });
|
|
89
|
+
result
|
|
90
|
+
.then((result) => {
|
|
91
|
+
this.capture({
|
|
92
|
+
type: utils_1.MessageType.OnRequestResult,
|
|
93
|
+
status: utils_1.ResponseStatus.Success,
|
|
94
|
+
requestId,
|
|
95
|
+
serviceMethod: method,
|
|
96
|
+
data: result.data,
|
|
97
|
+
});
|
|
98
|
+
})
|
|
99
|
+
.catch((err) => {
|
|
100
|
+
this.capture({
|
|
101
|
+
type: utils_1.MessageType.OnRequestResult,
|
|
102
|
+
status: utils_1.ResponseStatus.Fail,
|
|
103
|
+
requestId,
|
|
104
|
+
serviceMethod: method,
|
|
105
|
+
error: err.data,
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
return result;
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
if (cb) {
|
|
112
|
+
cb(service, method);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* 对于纯数组参数的情况,收到请求/通知后做展开操作
|
|
119
|
+
* 因为在通信层会为每个 rpc 调用添加一个 CancellationToken 参数
|
|
120
|
+
* 如果参数本身是数组, 在方法中如果使用 spread 运算符获取参数(...args),则会出现 [...args, MutableToken] 这种情况
|
|
121
|
+
* 所以发送请求时将这类参数统一再用数组包了一层,形如 [[...args]], 参考 {@link ProxyLegacy.get get} 方法
|
|
122
|
+
* 此时接收到的数组类参数固定长度为 2,且最后一项一定是 MutableToken
|
|
123
|
+
* @param args
|
|
124
|
+
* @returns args
|
|
125
|
+
*/
|
|
126
|
+
serializeArguments(args) {
|
|
127
|
+
const maybeCancellationToken = args[args.length - 1];
|
|
128
|
+
if (args.length === 2 &&
|
|
129
|
+
Array.isArray(args[0]) &&
|
|
130
|
+
Object.prototype.hasOwnProperty.call(maybeCancellationToken, '_isCancelled')) {
|
|
131
|
+
return [...args[0], maybeCancellationToken];
|
|
132
|
+
}
|
|
133
|
+
return args;
|
|
134
|
+
}
|
|
135
|
+
async onRequest(prop, ...args) {
|
|
136
|
+
try {
|
|
137
|
+
const result = await this.proxyService[prop](...this.serializeArguments(args));
|
|
138
|
+
return {
|
|
139
|
+
error: false,
|
|
140
|
+
data: result,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
catch (e) {
|
|
144
|
+
return {
|
|
145
|
+
error: true,
|
|
146
|
+
data: {
|
|
147
|
+
message: e.message,
|
|
148
|
+
stack: e.stack,
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
onNotification(prop, ...args) {
|
|
154
|
+
try {
|
|
155
|
+
this.proxyService[prop](...this.serializeArguments(args));
|
|
156
|
+
}
|
|
157
|
+
catch (e) {
|
|
158
|
+
this.logger.warn('notification', e);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
listen(connection) {
|
|
162
|
+
super.listen(connection);
|
|
163
|
+
connection.onRequest((method) => {
|
|
164
|
+
if (!this.proxyService[method]) {
|
|
165
|
+
const requestId = (0, ide_core_common_1.uuid)();
|
|
166
|
+
this.capture({ type: utils_1.MessageType.OnRequest, requestId, serviceMethod: method });
|
|
167
|
+
const result = {
|
|
168
|
+
data: constants_1.METHOD_NOT_REGISTERED,
|
|
169
|
+
};
|
|
170
|
+
this.capture({
|
|
171
|
+
type: utils_1.MessageType.OnRequestResult,
|
|
172
|
+
status: utils_1.ResponseStatus.Fail,
|
|
173
|
+
requestId,
|
|
174
|
+
serviceMethod: method,
|
|
175
|
+
error: result.data,
|
|
176
|
+
});
|
|
177
|
+
return result;
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
exports.ProxyLegacy = ProxyLegacy;
|
|
183
|
+
//# sourceMappingURL=legacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy.js","sourceRoot":"","sources":["../../../src/common/proxy/legacy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { IBench, ILogger, RPCServiceMethod, ServiceType } from '../types';
|
|
2
|
+
import { WSChannel } from '../ws-channel';
|
|
3
|
+
export declare class RPCServiceCenter {
|
|
4
|
+
private bench?;
|
|
5
|
+
uid: string;
|
|
6
|
+
private invokers;
|
|
7
|
+
private connection;
|
|
8
|
+
private serviceMethodMap;
|
|
9
|
+
private connectionDeferred;
|
|
10
|
+
private logger;
|
|
11
|
+
constructor(bench?: IBench | undefined, logger?: ILogger);
|
|
12
|
+
registerService(serviceName: string, type: ServiceType): void;
|
|
13
|
+
ready(): Promise<void>;
|
|
14
|
+
setChannel(channel: WSChannel): {
|
|
15
|
+
dispose: () => void;
|
|
16
|
+
};
|
|
17
|
+
onRequest(serviceName: string, _name: string, method: RPCServiceMethod): void;
|
|
18
|
+
broadcast(serviceName: string, _name: string, ...args: any[]): Promise<any>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=center.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"center.d.ts","sourceRoot":"","sources":["../../../src/common/rpc-service/center.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAkB,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE1F,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAyB1C,qBAAa,gBAAgB;IAWf,OAAO,CAAC,KAAK,CAAC;IAVnB,GAAG,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,UAAU,CAAwB;IAE1C,OAAO,CAAC,gBAAgB,CAAsD;IAE9E,OAAO,CAAC,kBAAkB,CAAwB;IAClD,OAAO,CAAC,MAAM,CAAU;gBAEJ,KAAK,CAAC,oBAAQ,EAAE,MAAM,CAAC,EAAE,OAAO;IAKpD,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI;IAQ7D,KAAK;IAIL,UAAU,CAAC,OAAO,EAAE,SAAS;;;IA0B7B,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAWhE,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CA2BlF"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RPCServiceCenter = void 0;
|
|
4
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
5
|
+
const constants_1 = require("../constants");
|
|
6
|
+
const proxy_1 = require("../proxy");
|
|
7
|
+
const types_1 = require("../types");
|
|
8
|
+
const utils_1 = require("../utils");
|
|
9
|
+
const safeProcess = typeof process === 'undefined' ? { pid: 'mock' } : process;
|
|
10
|
+
const defaultReservedWordSet = new Set(['then']);
|
|
11
|
+
class Invoker {
|
|
12
|
+
setLegacyProxy(proxy) {
|
|
13
|
+
this.legacyProxy = proxy;
|
|
14
|
+
this.legacyInvokeProxy = proxy.getInvokeProxy();
|
|
15
|
+
}
|
|
16
|
+
invoke(name, ...args) {
|
|
17
|
+
if (defaultReservedWordSet.has(name) || typeof name === 'symbol') {
|
|
18
|
+
return Promise.resolve();
|
|
19
|
+
}
|
|
20
|
+
return this.legacyInvokeProxy[name](...args);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
class RPCServiceCenter {
|
|
24
|
+
constructor(bench, logger) {
|
|
25
|
+
this.bench = bench;
|
|
26
|
+
this.invokers = [];
|
|
27
|
+
this.connection = [];
|
|
28
|
+
this.serviceMethodMap = { client: undefined };
|
|
29
|
+
this.connectionDeferred = new ide_core_common_1.Deferred();
|
|
30
|
+
this.uid = 'RPCServiceCenter:' + safeProcess.pid;
|
|
31
|
+
this.logger = logger || console;
|
|
32
|
+
}
|
|
33
|
+
registerService(serviceName, type) {
|
|
34
|
+
if (type === types_1.ServiceType.Service) {
|
|
35
|
+
if (this.bench) {
|
|
36
|
+
this.bench.registerService(serviceName);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
ready() {
|
|
41
|
+
return this.connectionDeferred.promise;
|
|
42
|
+
}
|
|
43
|
+
setChannel(channel) {
|
|
44
|
+
if (!this.connection.length) {
|
|
45
|
+
this.connectionDeferred.resolve();
|
|
46
|
+
}
|
|
47
|
+
this.connection.push(channel);
|
|
48
|
+
const index = this.connection.length - 1;
|
|
49
|
+
const rpcProxy = new proxy_1.ProxyLegacy(this.serviceMethodMap, this.logger);
|
|
50
|
+
const connection = channel.createMessageConnection();
|
|
51
|
+
rpcProxy.listen(connection);
|
|
52
|
+
const invoker = new Invoker();
|
|
53
|
+
invoker.setLegacyProxy(rpcProxy);
|
|
54
|
+
this.invokers.push(invoker);
|
|
55
|
+
return {
|
|
56
|
+
dispose: () => {
|
|
57
|
+
this.connection.splice(index, 1);
|
|
58
|
+
this.invokers.splice(index, 1);
|
|
59
|
+
connection.dispose();
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
onRequest(serviceName, _name, method) {
|
|
64
|
+
const name = (0, utils_1.getMethodName)(serviceName, _name);
|
|
65
|
+
if (!this.connection.length) {
|
|
66
|
+
this.serviceMethodMap[name] = method;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
this.invokers.forEach((proxy) => {
|
|
70
|
+
proxy.legacyProxy.listenService({ [name]: method });
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async broadcast(serviceName, _name, ...args) {
|
|
75
|
+
const name = (0, utils_1.getMethodName)(serviceName, _name);
|
|
76
|
+
const broadcastResult = await Promise.all(this.invokers.map((proxy) => proxy.invoke(name, ...args)));
|
|
77
|
+
const doubtfulResult = [];
|
|
78
|
+
const result = [];
|
|
79
|
+
for (const i of broadcastResult) {
|
|
80
|
+
if (i === constants_1.METHOD_NOT_REGISTERED) {
|
|
81
|
+
doubtfulResult.push(i);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
result.push(i);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (doubtfulResult.length > 0) {
|
|
88
|
+
this.logger.warn(`broadcast rpc \`${name}\` getting doubtful responses: ${doubtfulResult.join(',')}`);
|
|
89
|
+
}
|
|
90
|
+
if (result.length === 0) {
|
|
91
|
+
throw new Error(`broadcast rpc \`${name}\` error: no remote service can handle this call`);
|
|
92
|
+
}
|
|
93
|
+
// FIXME: this is an unreasonable design, if remote service only returned doubtful result, we will return an empty array.
|
|
94
|
+
// but actually we should throw an error to tell user that no remote service can handle this call.
|
|
95
|
+
// or just return `undefined`.
|
|
96
|
+
return result.length === 1 ? result[0] : result;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.RPCServiceCenter = RPCServiceCenter;
|
|
100
|
+
//# sourceMappingURL=center.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"center.js","sourceRoot":"","sources":["../../../src/common/rpc-service/center.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/rpc-service/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/rpc-service/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,mDAAyB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { RPCServiceMethod, ServiceType } from '../types';
|
|
2
|
+
import { RPCServiceCenter } from './center';
|
|
3
|
+
export declare class RPCServiceStub {
|
|
4
|
+
private serviceName;
|
|
5
|
+
private center;
|
|
6
|
+
private type;
|
|
7
|
+
constructor(serviceName: string, center: RPCServiceCenter, type: ServiceType);
|
|
8
|
+
ready(): Promise<void>;
|
|
9
|
+
on(name: string, method: RPCServiceMethod): void;
|
|
10
|
+
onRequestService(service: any): void;
|
|
11
|
+
onRequest(name: string, method: RPCServiceMethod): void;
|
|
12
|
+
broadcast(name: string, ...args: any[]): Promise<any>;
|
|
13
|
+
getProxy: <T>() => T extends void ? RPCServiceStub : RPCServiceStub & T;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=stub.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../../src/common/rpc-service/stub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,qBAAa,cAAc;IACb,OAAO,CAAC,WAAW;IAAU,OAAO,CAAC,MAAM;IAAoB,OAAO,CAAC,IAAI;gBAAnE,WAAW,EAAE,MAAM,EAAU,MAAM,EAAE,gBAAgB,EAAU,IAAI,EAAE,WAAW;IAI9F,KAAK;IAIX,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAIzC,gBAAgB,CAAC,OAAO,EAAE,GAAG;IAO7B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAIhD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAIrD,QAAQ,gEAcH;CACN"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RPCServiceStub = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
class RPCServiceStub {
|
|
6
|
+
constructor(serviceName, center, type) {
|
|
7
|
+
this.serviceName = serviceName;
|
|
8
|
+
this.center = center;
|
|
9
|
+
this.type = type;
|
|
10
|
+
this.getProxy = () => new Proxy(this, {
|
|
11
|
+
// 调用方
|
|
12
|
+
get: (target, prop) => {
|
|
13
|
+
if (!target[prop]) {
|
|
14
|
+
if (typeof prop === 'symbol') {
|
|
15
|
+
return Promise.resolve();
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return (...args) => this.ready().then(() => this.broadcast(prop, ...args));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
return target[prop];
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
this.center.registerService(serviceName, this.type);
|
|
27
|
+
}
|
|
28
|
+
async ready() {
|
|
29
|
+
return this.center.ready();
|
|
30
|
+
}
|
|
31
|
+
on(name, method) {
|
|
32
|
+
this.onRequest(name, method);
|
|
33
|
+
}
|
|
34
|
+
onRequestService(service) {
|
|
35
|
+
const methods = (0, utils_1.getServiceMethods)(service);
|
|
36
|
+
for (const method of methods) {
|
|
37
|
+
this.onRequest(method, service[method].bind(service));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
onRequest(name, method) {
|
|
41
|
+
this.center.onRequest(this.serviceName, name, method);
|
|
42
|
+
}
|
|
43
|
+
broadcast(name, ...args) {
|
|
44
|
+
return this.center.broadcast(this.serviceName, name, ...args);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.RPCServiceStub = RPCServiceStub;
|
|
48
|
+
//# sourceMappingURL=stub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stub.js","sourceRoot":"","sources":["../../../src/common/rpc-service/stub.ts"],"names":[],"mappings":";;;AACA,oCAA6C;AAI7C,MAAa,cAAc;IACzB,YAAoB,WAAmB,EAAU,MAAwB,EAAU,IAAiB;QAAhF,gBAAW,GAAX,WAAW,CAAQ;QAAU,WAAM,GAAN,MAAM,CAAkB;QAAU,SAAI,GAAJ,IAAI,CAAa;QA2BpG,aAAQ,GAAG,GAAM,EAAE,CACjB,IAAI,KAAK,CAAuD,IAAW,EAAE;YAC3E,MAAM;YACN,GAAG,EAAE,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oBACjB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;wBAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;qBAC1B;yBAAM;wBACL,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;qBACnF;iBACF;qBAAM;oBACL,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;iBACrB;YACH,CAAC;SACF,CAAC,CAAC;QAxCH,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,EAAE,CAAC,IAAY,EAAE,MAAwB;QACvC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,gBAAgB,CAAC,OAAY;QAC3B,MAAM,OAAO,GAAG,IAAA,yBAAiB,EAAC,OAAO,CAAC,CAAC;QAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;SACvD;IACH,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,MAAwB;QAC9C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,GAAG,IAAW;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAChE,CAAC;CAiBF;AA3CD,wCA2CC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface ILogger {
|
|
2
|
+
log(...args: any[]): void;
|
|
3
|
+
warn(...args: any[]): void;
|
|
4
|
+
error(...args: any[]): void;
|
|
5
|
+
}
|
|
6
|
+
export type RPCServiceMethod = (...args: any[]) => any;
|
|
7
|
+
export type IRPCServiceMap = Record<string, RPCServiceMethod>;
|
|
8
|
+
export declare enum ServiceType {
|
|
9
|
+
Service = 0,
|
|
10
|
+
Stub = 1
|
|
11
|
+
}
|
|
12
|
+
export interface IBench {
|
|
13
|
+
registerService: (service: string) => void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AACvD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE9D,oBAAY,WAAW;IACrB,OAAO,IAAA;IACP,IAAI,IAAA;CACL;AAED,MAAM,WAAW,MAAM;IACrB,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ServiceType = void 0;
|
|
4
|
+
var ServiceType;
|
|
5
|
+
(function (ServiceType) {
|
|
6
|
+
ServiceType[ServiceType["Service"] = 0] = "Service";
|
|
7
|
+
ServiceType[ServiceType["Stub"] = 1] = "Stub";
|
|
8
|
+
})(ServiceType = exports.ServiceType || (exports.ServiceType = {}));
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":";;;AASA,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,mDAAO,CAAA;IACP,6CAAI,CAAA;AACN,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB"}
|
package/lib/common/utils.d.ts
CHANGED
|
@@ -38,7 +38,9 @@ export interface WSCloseInfo {
|
|
|
38
38
|
};
|
|
39
39
|
connectInfo: ConnectionInfo;
|
|
40
40
|
}
|
|
41
|
-
export declare function stringify(obj: any): string;
|
|
42
|
-
export declare function parse(input: string, reviver?: (this: any, key: string, value: any) => any): any;
|
|
43
41
|
export declare function getCapturer(): any;
|
|
42
|
+
export declare function getServiceMethods(service: any): string[];
|
|
43
|
+
export declare function getNotificationName(serviceName: string, name: string): string;
|
|
44
|
+
export declare function getRequestName(serviceName: string, name: string): string;
|
|
45
|
+
export declare function getMethodName(serviceName: string, name: string): string;
|
|
44
46
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,iCAAiC,EAAE,GAAG,CAAC;KACxC;CACF;AAED,oBAAY,WAAW;IACrB,gBAAgB,qBAAqB;IACrC,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,SAAS,cAAc;IACvB,eAAe,oBAAoB;CACpC;AAED,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,WAAW,EAAE,cAAc,CAAC;CAC7B;AAED,wBAAgB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,iCAAiC,EAAE,GAAG,CAAC;KACxC;CACF;AAED,oBAAY,WAAW;IACrB,gBAAgB,qBAAqB;IACrC,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,SAAS,cAAc;IACvB,eAAe,oBAAoB;CACpC;AAED,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,WAAW,EAAE,cAAc,CAAC;CAC7B;AAED,wBAAgB,WAAW,QAK1B;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,EAAE,CAkBxD;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAEpE;AACD,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAE/D;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAE9D"}
|