@opensumi/ide-connection 2.27.3-rc-1706857131.0 → 2.27.3-rc-1708222409.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.map +1 -1
- package/lib/browser/ws-channel-handler.js +2 -6
- package/lib/browser/ws-channel-handler.js.map +1 -1
- package/lib/common/{connection → buffers}/buffers.d.ts +2 -1
- package/lib/common/buffers/buffers.d.ts.map +1 -0
- package/lib/common/{connection → buffers}/buffers.js +21 -3
- package/lib/common/buffers/buffers.js.map +1 -0
- package/lib/common/connection/drivers/base.d.ts +2 -2
- package/lib/common/connection/drivers/base.d.ts.map +1 -1
- package/lib/common/connection/drivers/base.js +0 -4
- package/lib/common/connection/drivers/base.js.map +1 -1
- package/lib/common/connection/drivers/frame-decoder.d.ts +34 -0
- package/lib/common/connection/drivers/frame-decoder.d.ts.map +1 -0
- package/lib/common/connection/drivers/frame-decoder.js +147 -0
- package/lib/common/connection/drivers/frame-decoder.js.map +1 -0
- package/lib/common/connection/drivers/{empty.d.ts → message-port.d.ts} +5 -2
- package/lib/common/connection/drivers/message-port.d.ts.map +1 -0
- package/lib/common/connection/drivers/message-port.js +41 -0
- package/lib/common/connection/drivers/message-port.js.map +1 -0
- package/lib/common/connection/drivers/node-message-port.d.ts +1 -0
- package/lib/common/connection/drivers/node-message-port.d.ts.map +1 -1
- package/lib/common/connection/drivers/node-message-port.js +3 -0
- package/lib/common/connection/drivers/node-message-port.js.map +1 -1
- package/lib/common/connection/drivers/reconnecting-websocket.d.ts +1 -0
- package/lib/common/connection/drivers/reconnecting-websocket.d.ts.map +1 -1
- package/lib/common/connection/drivers/reconnecting-websocket.js +3 -0
- package/lib/common/connection/drivers/reconnecting-websocket.js.map +1 -1
- package/lib/common/connection/drivers/simple.d.ts +17 -0
- package/lib/common/connection/drivers/simple.d.ts.map +1 -0
- package/lib/common/connection/drivers/simple.js +32 -0
- package/lib/common/connection/drivers/simple.js.map +1 -0
- package/lib/common/connection/drivers/socket.d.ts +4 -2
- package/lib/common/connection/drivers/socket.d.ts.map +1 -1
- package/lib/common/connection/drivers/socket.js +10 -7
- package/lib/common/connection/drivers/socket.js.map +1 -1
- package/lib/common/connection/drivers/ws-websocket.d.ts +2 -0
- package/lib/common/connection/drivers/ws-websocket.d.ts.map +1 -1
- package/lib/common/connection/drivers/ws-websocket.js +6 -0
- package/lib/common/connection/drivers/ws-websocket.js.map +1 -1
- package/lib/common/connection/types.d.ts +1 -1
- package/lib/common/connection/types.d.ts.map +1 -1
- package/lib/common/ext-rpc-protocol.d.ts +7 -21
- package/lib/common/ext-rpc-protocol.d.ts.map +1 -1
- package/lib/common/ext-rpc-protocol.js +13 -33
- package/lib/common/ext-rpc-protocol.js.map +1 -1
- package/lib/common/fury-extends/any.d.ts +22 -0
- package/lib/common/fury-extends/any.d.ts.map +1 -0
- package/lib/common/fury-extends/any.js +143 -0
- package/lib/common/fury-extends/any.js.map +1 -0
- package/lib/common/fury-extends/one-of.d.ts +14 -0
- package/lib/common/fury-extends/one-of.d.ts.map +1 -0
- package/lib/common/fury-extends/one-of.js +50 -0
- package/lib/common/fury-extends/one-of.js.map +1 -0
- package/lib/common/fury-extends/shared.d.ts +142 -0
- package/lib/common/fury-extends/shared.d.ts.map +1 -0
- package/lib/common/fury-extends/shared.js +17 -0
- package/lib/common/fury-extends/shared.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/protocols/common-server.d.ts +3 -0
- package/lib/common/protocols/common-server.d.ts.map +1 -0
- package/lib/common/protocols/common-server.js +18 -0
- package/lib/common/protocols/common-server.js.map +1 -0
- package/lib/common/protocols/common.d.ts +24 -0
- package/lib/common/protocols/common.d.ts.map +1 -0
- package/lib/common/protocols/common.js +12 -0
- package/lib/common/protocols/common.js.map +1 -0
- package/lib/common/rpc/connection.d.ts +44 -0
- package/lib/common/rpc/connection.d.ts.map +1 -0
- package/lib/common/rpc/connection.js +256 -0
- package/lib/common/rpc/connection.js.map +1 -0
- package/lib/common/rpc/errors.d.ts +4 -0
- package/lib/common/rpc/errors.d.ts.map +1 -0
- package/lib/common/rpc/errors.js +10 -0
- package/lib/common/rpc/errors.js.map +1 -0
- package/lib/common/rpc/index.d.ts +3 -0
- package/lib/common/rpc/index.d.ts.map +1 -0
- package/lib/common/rpc/index.js +6 -0
- package/lib/common/rpc/index.js.map +1 -0
- package/lib/common/rpc/multiplexer.d.ts +28 -0
- package/lib/common/rpc/multiplexer.d.ts.map +1 -0
- package/lib/common/rpc/multiplexer.js +82 -0
- package/lib/common/rpc/multiplexer.js.map +1 -0
- package/lib/common/rpc/packet.d.ts +65 -0
- package/lib/common/rpc/packet.d.ts.map +1 -0
- package/lib/common/rpc/packet.js +82 -0
- package/lib/common/rpc/packet.js.map +1 -0
- package/lib/common/rpc/protocol-repository.d.ts +32 -0
- package/lib/common/rpc/protocol-repository.d.ts.map +1 -0
- package/lib/common/rpc/protocol-repository.js +118 -0
- package/lib/common/rpc/protocol-repository.js.map +1 -0
- package/lib/common/rpc/types.d.ts +13 -0
- package/lib/common/rpc/types.d.ts.map +1 -0
- package/lib/common/rpc/types.js +3 -0
- package/lib/common/rpc/types.js.map +1 -0
- package/lib/common/rpc/utils.d.ts +2 -0
- package/lib/common/rpc/utils.d.ts.map +1 -0
- package/lib/common/rpc/utils.js +10 -0
- package/lib/common/rpc/utils.js.map +1 -0
- package/lib/common/rpc-service/center.d.ts +12 -5
- package/lib/common/rpc-service/center.d.ts.map +1 -1
- package/lib/common/rpc-service/center.js +47 -42
- package/lib/common/rpc-service/center.js.map +1 -1
- package/lib/common/rpc-service/index.d.ts +6 -0
- package/lib/common/rpc-service/index.d.ts.map +1 -1
- package/lib/common/rpc-service/index.js +7 -0
- package/lib/common/rpc-service/index.js.map +1 -1
- package/lib/common/rpc-service/proxy/base.d.ts +32 -0
- package/lib/common/rpc-service/proxy/base.d.ts.map +1 -0
- package/lib/common/rpc-service/proxy/base.js +93 -0
- package/lib/common/rpc-service/proxy/base.js.map +1 -0
- package/lib/common/rpc-service/proxy/index.d.ts +5 -0
- package/lib/common/rpc-service/proxy/index.d.ts.map +1 -0
- package/lib/common/rpc-service/proxy/index.js +8 -0
- package/lib/common/rpc-service/proxy/index.js.map +1 -0
- package/lib/common/rpc-service/proxy/invoker.d.ts +14 -0
- package/lib/common/rpc-service/proxy/invoker.d.ts.map +1 -0
- package/lib/common/rpc-service/proxy/invoker.js +34 -0
- package/lib/common/rpc-service/proxy/invoker.js.map +1 -0
- package/lib/common/{proxy → rpc-service/proxy}/legacy.d.ts +3 -7
- package/lib/common/rpc-service/proxy/legacy.d.ts.map +1 -0
- package/lib/common/rpc-service/proxy/legacy.js +136 -0
- package/lib/common/rpc-service/proxy/legacy.js.map +1 -0
- package/lib/common/rpc-service/proxy/registry.d.ts +18 -0
- package/lib/common/rpc-service/proxy/registry.d.ts.map +1 -0
- package/lib/common/rpc-service/proxy/registry.js +46 -0
- package/lib/common/rpc-service/proxy/registry.js.map +1 -0
- package/lib/common/rpc-service/proxy/sumi.d.ts +9 -0
- package/lib/common/rpc-service/proxy/sumi.d.ts.map +1 -0
- package/lib/common/rpc-service/proxy/sumi.js +86 -0
- package/lib/common/rpc-service/proxy/sumi.js.map +1 -0
- package/lib/common/rpc-service/stub.d.ts +0 -1
- package/lib/common/rpc-service/stub.d.ts.map +1 -1
- package/lib/common/rpc-service/stub.js +3 -11
- package/lib/common/rpc-service/stub.js.map +1 -1
- package/lib/common/types.d.ts +1 -1
- package/lib/common/types.d.ts.map +1 -1
- package/lib/common/ws-channel.d.ts +97 -32
- package/lib/common/ws-channel.d.ts.map +1 -1
- package/lib/common/ws-channel.js +75 -51
- package/lib/common/ws-channel.js.map +1 -1
- package/lib/node/common-channel-handler.js +1 -1
- package/lib/node/common-channel-handler.js.map +1 -1
- package/package.json +5 -5
- package/src/browser/ws-channel-handler.ts +2 -6
- package/src/common/{connection → buffers}/buffers.ts +24 -3
- package/src/common/connection/drivers/base.ts +2 -6
- package/src/common/connection/drivers/frame-decoder.ts +170 -0
- package/src/common/connection/drivers/message-port.ts +42 -0
- package/src/common/connection/drivers/node-message-port.ts +3 -0
- package/src/common/connection/drivers/reconnecting-websocket.ts +4 -0
- package/src/common/connection/drivers/simple.ts +33 -0
- package/src/common/connection/drivers/socket.ts +11 -7
- package/src/common/connection/drivers/ws-websocket.ts +8 -0
- package/src/common/connection/types.ts +1 -1
- package/src/common/ext-rpc-protocol.ts +16 -51
- package/src/common/fury-extends/any.ts +144 -0
- package/src/common/fury-extends/one-of.ts +61 -0
- package/src/common/fury-extends/shared.ts +15 -0
- package/src/common/index.ts +2 -1
- package/src/common/protocols/common-server.ts +18 -0
- package/src/common/protocols/common.ts +9 -0
- package/src/common/rpc/connection.ts +345 -0
- package/src/common/rpc/errors.ts +5 -0
- package/src/common/rpc/index.ts +2 -0
- package/src/common/rpc/multiplexer.ts +105 -0
- package/src/common/rpc/packet.ts +104 -0
- package/src/common/rpc/protocol-repository.ts +180 -0
- package/src/common/rpc/types.ts +23 -0
- package/src/common/rpc/utils.ts +5 -0
- package/src/common/rpc-service/center.ts +59 -49
- package/src/common/rpc-service/index.ts +9 -0
- package/src/common/rpc-service/proxy/base.ts +126 -0
- package/src/common/rpc-service/proxy/index.ts +4 -0
- package/src/common/rpc-service/proxy/invoker.ts +45 -0
- package/src/common/rpc-service/proxy/legacy.ts +150 -0
- package/src/common/rpc-service/proxy/registry.ts +56 -0
- package/src/common/rpc-service/proxy/sumi.ts +81 -0
- package/src/common/rpc-service/stub.ts +4 -11
- package/src/common/types.ts +1 -1
- package/src/common/ws-channel.ts +100 -61
- package/src/node/common-channel-handler.ts +1 -1
- package/lib/common/connection/buffers.d.ts.map +0 -1
- package/lib/common/connection/buffers.js.map +0 -1
- package/lib/common/connection/drivers/empty.d.ts.map +0 -1
- package/lib/common/connection/drivers/empty.js +0 -21
- package/lib/common/connection/drivers/empty.js.map +0 -1
- package/lib/common/connection/drivers/stream-decoder.d.ts +0 -67
- package/lib/common/connection/drivers/stream-decoder.d.ts.map +0 -1
- package/lib/common/connection/drivers/stream-decoder.js +0 -171
- package/lib/common/connection/drivers/stream-decoder.js.map +0 -1
- package/lib/common/proxy/base.d.ts +0 -22
- package/lib/common/proxy/base.d.ts.map +0 -1
- package/lib/common/proxy/base.js +0 -47
- package/lib/common/proxy/base.js.map +0 -1
- package/lib/common/proxy/index.d.ts +0 -8
- package/lib/common/proxy/index.d.ts.map +0 -1
- package/lib/common/proxy/index.js +0 -12
- package/lib/common/proxy/index.js.map +0 -1
- package/lib/common/proxy/legacy.d.ts.map +0 -1
- package/lib/common/proxy/legacy.js +0 -183
- package/lib/common/proxy/legacy.js.map +0 -1
- package/src/common/connection/drivers/empty.ts +0 -19
- package/src/common/connection/drivers/stream-decoder.ts +0 -196
- package/src/common/proxy/base.ts +0 -67
- package/src/common/proxy/index.ts +0 -10
- package/src/common/proxy/legacy.ts +0 -200
|
@@ -3,30 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RPCServiceCenter = void 0;
|
|
4
4
|
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
5
5
|
const constants_1 = require("../constants");
|
|
6
|
-
const
|
|
6
|
+
const rpc_1 = require("../rpc");
|
|
7
7
|
const types_1 = require("../types");
|
|
8
8
|
const utils_1 = require("../utils");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
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
|
-
}
|
|
9
|
+
const proxy_1 = require("./proxy");
|
|
10
|
+
const safeProcess = typeof process === 'undefined' ? { pid: 'unknown' } : process;
|
|
23
11
|
class RPCServiceCenter {
|
|
24
12
|
constructor(bench, logger) {
|
|
25
13
|
this.bench = bench;
|
|
26
14
|
this.invokers = [];
|
|
27
|
-
this.
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
15
|
+
this.protocolRepository = new rpc_1.ProtocolRepository();
|
|
16
|
+
this.registry = new proxy_1.ServiceRegistry();
|
|
17
|
+
this.deferred = new ide_core_common_1.Deferred();
|
|
30
18
|
this.uid = 'RPCServiceCenter:' + safeProcess.pid;
|
|
31
19
|
this.logger = logger || console;
|
|
32
20
|
}
|
|
@@ -38,40 +26,57 @@ class RPCServiceCenter {
|
|
|
38
26
|
}
|
|
39
27
|
}
|
|
40
28
|
ready() {
|
|
41
|
-
return this.
|
|
29
|
+
return this.deferred.promise;
|
|
30
|
+
}
|
|
31
|
+
loadProtocol(protocol) {
|
|
32
|
+
this.protocolRepository.loadProtocol(protocol, {
|
|
33
|
+
nameConverter: (name) => (0, utils_1.getMethodName)(protocol.name, name),
|
|
34
|
+
});
|
|
42
35
|
}
|
|
43
|
-
|
|
44
|
-
if (
|
|
45
|
-
this.
|
|
36
|
+
setSumiConnection(connection) {
|
|
37
|
+
if (this.invokers.length === 0) {
|
|
38
|
+
this.deferred.resolve();
|
|
46
39
|
}
|
|
47
|
-
this.
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const invoker = new Invoker();
|
|
53
|
-
invoker.setLegacyProxy(rpcProxy);
|
|
40
|
+
const index = this.invokers.length - 1;
|
|
41
|
+
const invoker = new proxy_1.Invoker();
|
|
42
|
+
const sumiProxy = new proxy_1.ProxySumi(this.registry, this.logger);
|
|
43
|
+
invoker.attachSumi(sumiProxy);
|
|
44
|
+
sumiProxy.listen(connection);
|
|
54
45
|
this.invokers.push(invoker);
|
|
55
46
|
return {
|
|
56
47
|
dispose: () => {
|
|
57
|
-
this.connection.splice(index, 1);
|
|
58
48
|
this.invokers.splice(index, 1);
|
|
59
|
-
|
|
49
|
+
invoker.dispose();
|
|
60
50
|
},
|
|
61
51
|
};
|
|
62
52
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
this.serviceMethodMap[name] = method;
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
this.invokers.forEach((proxy) => {
|
|
70
|
-
proxy.legacyProxy.listenService({ [name]: method });
|
|
71
|
-
});
|
|
53
|
+
setConnection(connection) {
|
|
54
|
+
if (this.invokers.length === 0) {
|
|
55
|
+
this.deferred.resolve();
|
|
72
56
|
}
|
|
57
|
+
const index = this.invokers.length - 1;
|
|
58
|
+
const invoker = new proxy_1.Invoker();
|
|
59
|
+
const legacyProxy = new proxy_1.ProxyLegacy(this.registry, this.logger);
|
|
60
|
+
legacyProxy.listen(connection);
|
|
61
|
+
invoker.attachLegacy(legacyProxy);
|
|
62
|
+
this.invokers.push(invoker);
|
|
63
|
+
return {
|
|
64
|
+
dispose: () => {
|
|
65
|
+
this.invokers.splice(index, 1);
|
|
66
|
+
invoker.dispose();
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
onRequest(serviceName, _name, method) {
|
|
71
|
+
this.registry.register((0, utils_1.getMethodName)(serviceName, _name), method);
|
|
72
|
+
}
|
|
73
|
+
onRequestService(serviceName, service) {
|
|
74
|
+
this.registry.registerService(service, {
|
|
75
|
+
nameConverter: (name) => (0, utils_1.getMethodName)(serviceName, name),
|
|
76
|
+
});
|
|
73
77
|
}
|
|
74
78
|
async broadcast(serviceName, _name, ...args) {
|
|
79
|
+
await this.ready();
|
|
75
80
|
const name = (0, utils_1.getMethodName)(serviceName, _name);
|
|
76
81
|
const broadcastResult = await Promise.all(this.invokers.map((proxy) => proxy.invoke(name, ...args)));
|
|
77
82
|
const doubtfulResult = [];
|
|
@@ -91,8 +96,8 @@ class RPCServiceCenter {
|
|
|
91
96
|
throw new Error(`broadcast rpc \`${name}\` error: no remote service can handle this call`);
|
|
92
97
|
}
|
|
93
98
|
// FIXME: this is an unreasonable design, if remote service only returned doubtful result, we will return an empty array.
|
|
94
|
-
//
|
|
95
|
-
//
|
|
99
|
+
// but actually we should throw an error to tell user that no remote service can handle this call.
|
|
100
|
+
// or just return `undefined`.
|
|
96
101
|
return result.length === 1 ? result[0] : result;
|
|
97
102
|
}
|
|
98
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"center.js","sourceRoot":"","sources":["../../../src/common/rpc-service/center.ts"],"names":[],"mappings":";;;AAAA,+DAAqD;
|
|
1
|
+
{"version":3,"file":"center.js","sourceRoot":"","sources":["../../../src/common/rpc-service/center.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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"}
|
|
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;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"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RPCService = void 0;
|
|
3
4
|
const tslib_1 = require("tslib");
|
|
4
5
|
tslib_1.__exportStar(require("./stub"), exports);
|
|
5
6
|
tslib_1.__exportStar(require("./center"), exports);
|
|
7
|
+
class RPCService {
|
|
8
|
+
get client() {
|
|
9
|
+
return this.rpcClient ? this.rpcClient[0] : undefined;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.RPCService = RPCService;
|
|
6
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/rpc-service/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/rpc-service/index.ts"],"names":[],"mappings":";;;;AAAA,iDAAuB;AACvB,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,32 @@
|
|
|
1
|
+
import { Deferred } from '@opensumi/ide-core-common';
|
|
2
|
+
import { ILogger, IRPCServiceMap } from '../../types';
|
|
3
|
+
import type { ServiceRegistry } from './registry';
|
|
4
|
+
interface IBaseConnection {
|
|
5
|
+
listen(): void;
|
|
6
|
+
dispose(): void;
|
|
7
|
+
}
|
|
8
|
+
export declare abstract class ProxyBase<T extends IBaseConnection> {
|
|
9
|
+
registry: ServiceRegistry;
|
|
10
|
+
protected logger: ILogger;
|
|
11
|
+
protected connection: T;
|
|
12
|
+
protected connectionPromise: Deferred<void>;
|
|
13
|
+
protected abstract engine: 'legacy' | 'sumi';
|
|
14
|
+
constructor(registry: ServiceRegistry, logger?: ILogger);
|
|
15
|
+
private capture;
|
|
16
|
+
protected nextRequestId(): string;
|
|
17
|
+
protected captureOnRequest(requestId: string, serviceMethod: string, args: any[]): void;
|
|
18
|
+
protected captureOnRequestResult(requestId: string, serviceMethod: string, data: any): void;
|
|
19
|
+
protected captureOnRequestFail(requestId: string, serviceMethod: string, error: any): void;
|
|
20
|
+
protected captureOnNotification(serviceMethod: string, args: any[]): void;
|
|
21
|
+
protected captureSendRequest(requestId: string, serviceMethod: string, args: any[]): void;
|
|
22
|
+
protected captureSendRequestResult(requestId: string, serviceMethod: string, data: any): void;
|
|
23
|
+
protected captureSendRequestFail(requestId: string, serviceMethod: string, error: any): void;
|
|
24
|
+
protected captureSendNotification(serviceMethod: string, args: any[]): void;
|
|
25
|
+
listen(connection: T): void;
|
|
26
|
+
listenService(service: IRPCServiceMap): void;
|
|
27
|
+
dispose(): void;
|
|
28
|
+
abstract getInvokeProxy<T = any>(): T;
|
|
29
|
+
protected abstract bindMethods(services: PropertyKey[]): void;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/common/rpc-service/proxy/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,UAAU,eAAe;IACvB,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;CACjB;AAID,8BAAsB,SAAS,CAAC,CAAC,SAAS,eAAe;IAQpC,QAAQ,EAAE,eAAe;IAP5C,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,GAAG,MAAM,CAAC;gBAE1B,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,OAAO;IAW9D,OAAO,CAAC,OAAO;IAUf,SAAS,CAAC,aAAa;IAIvB,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAIvF,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAU3F,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAY1F,SAAS,CAAC,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAIzE,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAIzF,SAAS,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAU7F,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAU5F,SAAS,CAAC,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI3E,MAAM,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI;IAQpB,aAAa,CAAC,OAAO,EAAE,cAAc;IAI5C,OAAO,IAAI,IAAI;IAMf,QAAQ,CAAC,cAAc,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI;CAC9D"}
|
|
@@ -0,0 +1,93 @@
|
|
|
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
|
+
let requestId = 0;
|
|
7
|
+
class ProxyBase {
|
|
8
|
+
constructor(registry, logger) {
|
|
9
|
+
this.registry = registry;
|
|
10
|
+
this.connectionPromise = new ide_core_common_1.Deferred();
|
|
11
|
+
this.logger = logger || console;
|
|
12
|
+
this.registry.onServicesUpdate((services) => {
|
|
13
|
+
if (this.connection) {
|
|
14
|
+
this.bindMethods(services);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
// capture messages for opensumi devtools
|
|
19
|
+
capture(message) {
|
|
20
|
+
const capturer = (0, utils_1.getCapturer)();
|
|
21
|
+
if ((0, ide_core_common_1.isDefined)(capturer)) {
|
|
22
|
+
capturer(Object.assign(Object.assign({}, message), { engine: this.engine }));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
nextRequestId() {
|
|
26
|
+
return String(requestId++);
|
|
27
|
+
}
|
|
28
|
+
captureOnRequest(requestId, serviceMethod, args) {
|
|
29
|
+
this.capture({ type: utils_1.MessageType.OnRequest, requestId, serviceMethod, arguments: args });
|
|
30
|
+
}
|
|
31
|
+
captureOnRequestResult(requestId, serviceMethod, data) {
|
|
32
|
+
this.capture({
|
|
33
|
+
type: utils_1.MessageType.OnRequestResult,
|
|
34
|
+
status: utils_1.ResponseStatus.Success,
|
|
35
|
+
requestId,
|
|
36
|
+
serviceMethod,
|
|
37
|
+
data,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
captureOnRequestFail(requestId, serviceMethod, error) {
|
|
41
|
+
this.logger.warn(`request exec ${serviceMethod} error`, error);
|
|
42
|
+
this.capture({
|
|
43
|
+
type: utils_1.MessageType.OnRequestResult,
|
|
44
|
+
status: utils_1.ResponseStatus.Fail,
|
|
45
|
+
requestId,
|
|
46
|
+
serviceMethod,
|
|
47
|
+
error,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
captureOnNotification(serviceMethod, args) {
|
|
51
|
+
this.capture({ type: utils_1.MessageType.OnNotification, serviceMethod, arguments: args });
|
|
52
|
+
}
|
|
53
|
+
captureSendRequest(requestId, serviceMethod, args) {
|
|
54
|
+
this.capture({ type: utils_1.MessageType.SendRequest, requestId, serviceMethod, arguments: args });
|
|
55
|
+
}
|
|
56
|
+
captureSendRequestResult(requestId, serviceMethod, data) {
|
|
57
|
+
this.capture({
|
|
58
|
+
type: utils_1.MessageType.RequestResult,
|
|
59
|
+
status: utils_1.ResponseStatus.Success,
|
|
60
|
+
requestId,
|
|
61
|
+
serviceMethod,
|
|
62
|
+
data,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
captureSendRequestFail(requestId, serviceMethod, error) {
|
|
66
|
+
this.capture({
|
|
67
|
+
type: utils_1.MessageType.RequestResult,
|
|
68
|
+
status: utils_1.ResponseStatus.Fail,
|
|
69
|
+
requestId,
|
|
70
|
+
serviceMethod,
|
|
71
|
+
error,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
captureSendNotification(serviceMethod, args) {
|
|
75
|
+
this.capture({ type: utils_1.MessageType.SendNotification, serviceMethod, arguments: args });
|
|
76
|
+
}
|
|
77
|
+
listen(connection) {
|
|
78
|
+
this.connection = connection;
|
|
79
|
+
this.bindMethods(this.registry.methods());
|
|
80
|
+
connection.listen();
|
|
81
|
+
this.connectionPromise.resolve();
|
|
82
|
+
}
|
|
83
|
+
listenService(service) {
|
|
84
|
+
this.registry.registerService(service);
|
|
85
|
+
}
|
|
86
|
+
dispose() {
|
|
87
|
+
if (this.connection) {
|
|
88
|
+
this.connection.dispose();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.ProxyBase = ProxyBase;
|
|
93
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/common/rpc-service/proxy/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/common/rpc-service/proxy/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./legacy"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./sumi"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./registry"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./invoker"), exports);
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/rpc-service/proxy/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,iDAAuB;AACvB,qDAA2B;AAC3B,oDAA0B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ProxyLegacy } from './legacy';
|
|
2
|
+
import { ProxySumi } from './sumi';
|
|
3
|
+
export declare class Invoker {
|
|
4
|
+
legacyProxy: ProxyLegacy;
|
|
5
|
+
sumiProxy: ProxySumi;
|
|
6
|
+
private legacyInvokeProxy;
|
|
7
|
+
private sumiInvokeProxy;
|
|
8
|
+
constructor();
|
|
9
|
+
attachLegacy(legacyProxy: ProxyLegacy): void;
|
|
10
|
+
attachSumi(sumiProxy: ProxySumi): void;
|
|
11
|
+
invoke(name: string, ...args: any[]): any;
|
|
12
|
+
dispose(): void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=invoker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invoker.d.ts","sourceRoot":"","sources":["../../../../src/common/rpc-service/proxy/invoker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAInC,qBAAa,OAAO;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,SAAS,CAAC;IAErB,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,eAAe,CAAM;;IAI7B,YAAY,CAAC,WAAW,EAAE,WAAW;IAKrC,UAAU,CAAC,SAAS,EAAE,SAAS;IAK/B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAYnC,OAAO;CAQR"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Invoker = void 0;
|
|
4
|
+
const defaultReservedWordSet = new Set(['then', 'finally']);
|
|
5
|
+
class Invoker {
|
|
6
|
+
constructor() { }
|
|
7
|
+
attachLegacy(legacyProxy) {
|
|
8
|
+
this.legacyProxy = legacyProxy;
|
|
9
|
+
this.legacyInvokeProxy = this.legacyProxy.getInvokeProxy();
|
|
10
|
+
}
|
|
11
|
+
attachSumi(sumiProxy) {
|
|
12
|
+
this.sumiProxy = sumiProxy;
|
|
13
|
+
this.sumiInvokeProxy = this.sumiProxy.getInvokeProxy();
|
|
14
|
+
}
|
|
15
|
+
invoke(name, ...args) {
|
|
16
|
+
if (defaultReservedWordSet.has(name)) {
|
|
17
|
+
return Promise.resolve();
|
|
18
|
+
}
|
|
19
|
+
if (this.sumiInvokeProxy) {
|
|
20
|
+
return this.sumiInvokeProxy[name](...args);
|
|
21
|
+
}
|
|
22
|
+
return this.legacyInvokeProxy[name](...args);
|
|
23
|
+
}
|
|
24
|
+
dispose() {
|
|
25
|
+
if (this.legacyProxy) {
|
|
26
|
+
this.legacyProxy.dispose();
|
|
27
|
+
}
|
|
28
|
+
if (this.sumiProxy) {
|
|
29
|
+
this.sumiProxy.dispose();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.Invoker = Invoker;
|
|
34
|
+
//# sourceMappingURL=invoker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invoker.js","sourceRoot":"","sources":["../../../../src/common/rpc-service/proxy/invoker.ts"],"names":[],"mappings":";;;AAGA,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAE5D,MAAa,OAAO;IAOlB,gBAAe,CAAC;IAEhB,YAAY,CAAC,WAAwB;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;IAC7D,CAAC;IAED,UAAU,CAAC,SAAoB;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,IAAY,EAAE,GAAG,IAAW;QACjC,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACpC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC1B;QAED,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;SAC5C;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;SAC5B;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;SAC1B;IACH,CAAC;CACF;AAvCD,0BAuCC"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { MessageConnection } from '@opensumi/vscode-jsonrpc';
|
|
2
|
-
import { IRPCServiceMap } from '../types';
|
|
3
2
|
import { ProxyBase } from './base';
|
|
4
3
|
export declare class ProxyLegacy extends ProxyBase<MessageConnection> {
|
|
5
|
-
engine: "legacy";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
protected bindOnRequest(service: IRPCServiceMap, cb?: ((service: IRPCServiceMap, prop: string) => void) | undefined): void;
|
|
4
|
+
protected engine: "legacy";
|
|
5
|
+
protected bindMethods(methods: string[]): void;
|
|
6
|
+
getInvokeProxy<T = any>(): T;
|
|
9
7
|
/**
|
|
10
8
|
* 对于纯数组参数的情况,收到请求/通知后做展开操作
|
|
11
9
|
* 因为在通信层会为每个 rpc 调用添加一个 CancellationToken 参数
|
|
@@ -16,8 +14,6 @@ export declare class ProxyLegacy extends ProxyBase<MessageConnection> {
|
|
|
16
14
|
* @returns args
|
|
17
15
|
*/
|
|
18
16
|
private serializeArguments;
|
|
19
|
-
private onRequest;
|
|
20
|
-
private onNotification;
|
|
21
17
|
listen(connection: MessageConnection): void;
|
|
22
18
|
}
|
|
23
19
|
//# sourceMappingURL=legacy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy.d.ts","sourceRoot":"","sources":["../../../../src/common/rpc-service/proxy/legacy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAI7D,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAOnC,qBAAa,WAAY,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IAC3D,SAAS,CAAC,MAAM,WAAqB;IAErC,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAyCvC,cAAc,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;IAyDnC;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IAa1B,MAAM,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;CAe5C"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProxyLegacy = void 0;
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
5
|
+
const base_1 = require("./base");
|
|
6
|
+
class ProxyLegacy extends base_1.ProxyBase {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.engine = 'legacy';
|
|
10
|
+
}
|
|
11
|
+
bindMethods(methods) {
|
|
12
|
+
for (const method of methods) {
|
|
13
|
+
if (method.startsWith('on')) {
|
|
14
|
+
this.connection.onNotification(method, async (...args) => {
|
|
15
|
+
this.captureOnNotification(method, args);
|
|
16
|
+
try {
|
|
17
|
+
await this.registry.invoke(method, ...this.serializeArguments(args));
|
|
18
|
+
}
|
|
19
|
+
catch (e) {
|
|
20
|
+
this.logger.warn(`notification exec ${method} error`, e);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this.connection.onRequest(method, async (...args) => {
|
|
26
|
+
const requestId = this.nextRequestId();
|
|
27
|
+
this.captureOnRequest(requestId, method, args);
|
|
28
|
+
try {
|
|
29
|
+
const result = await this.registry.invoke(method, ...this.serializeArguments(args));
|
|
30
|
+
this.captureOnRequestResult(requestId, method, result);
|
|
31
|
+
return {
|
|
32
|
+
error: false,
|
|
33
|
+
data: result,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
this.captureOnRequestFail(requestId, method, e);
|
|
38
|
+
return {
|
|
39
|
+
error: true,
|
|
40
|
+
data: {
|
|
41
|
+
message: e.message,
|
|
42
|
+
stack: e.stack,
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
getInvokeProxy() {
|
|
51
|
+
return new Proxy(Object.create(null), {
|
|
52
|
+
get: (target, p) => {
|
|
53
|
+
if (!target[p]) {
|
|
54
|
+
target[p] = async (...args) => {
|
|
55
|
+
await this.connectionPromise.promise;
|
|
56
|
+
let isSingleArray = false;
|
|
57
|
+
if (args.length === 1 && Array.isArray(args[0])) {
|
|
58
|
+
isSingleArray = true;
|
|
59
|
+
}
|
|
60
|
+
const prop = p.toString();
|
|
61
|
+
// 调用方法为 on 开头时,作为单项通知
|
|
62
|
+
if (prop.startsWith('on')) {
|
|
63
|
+
this.captureSendNotification(prop, args);
|
|
64
|
+
if (isSingleArray) {
|
|
65
|
+
this.connection.sendNotification(prop, [...args]);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
this.connection.sendNotification(prop, ...args);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
// generate a unique requestId to associate request and requestResult
|
|
73
|
+
const requestId = this.nextRequestId();
|
|
74
|
+
let requestResult;
|
|
75
|
+
if (isSingleArray) {
|
|
76
|
+
requestResult = this.connection.sendRequest(prop, [...args]);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
requestResult = this.connection.sendRequest(prop, ...args);
|
|
80
|
+
}
|
|
81
|
+
this.captureSendRequest(requestId, prop, args);
|
|
82
|
+
const result = await requestResult;
|
|
83
|
+
if (result.error) {
|
|
84
|
+
const error = new Error(result.data.message);
|
|
85
|
+
if (result.data.stack) {
|
|
86
|
+
error.stack = result.data.stack;
|
|
87
|
+
}
|
|
88
|
+
this.captureSendRequestFail(requestId, prop, result.data);
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
this.captureSendRequestResult(requestId, prop, result.data);
|
|
93
|
+
return result.data;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
return target[p];
|
|
99
|
+
},
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* 对于纯数组参数的情况,收到请求/通知后做展开操作
|
|
104
|
+
* 因为在通信层会为每个 rpc 调用添加一个 CancellationToken 参数
|
|
105
|
+
* 如果参数本身是数组, 在方法中如果使用 spread 运算符获取参数(...args),则会出现 [...args, MutableToken] 这种情况
|
|
106
|
+
* 所以发送请求时将这类参数统一再用数组包了一层,形如 [[...args]], 参考 {@link ProxyLegacy.get get} 方法
|
|
107
|
+
* 此时接收到的数组类参数固定长度为 2,且最后一项一定是 MutableToken
|
|
108
|
+
* @param args
|
|
109
|
+
* @returns args
|
|
110
|
+
*/
|
|
111
|
+
serializeArguments(args) {
|
|
112
|
+
const maybeCancellationToken = args[args.length - 1];
|
|
113
|
+
if (args.length === 2 &&
|
|
114
|
+
Array.isArray(args[0]) &&
|
|
115
|
+
Object.prototype.hasOwnProperty.call(maybeCancellationToken, '_isCancelled')) {
|
|
116
|
+
return [...args[0], maybeCancellationToken];
|
|
117
|
+
}
|
|
118
|
+
return args;
|
|
119
|
+
}
|
|
120
|
+
listen(connection) {
|
|
121
|
+
super.listen(connection);
|
|
122
|
+
connection.onRequest((method) => {
|
|
123
|
+
if (!this.registry.has(method)) {
|
|
124
|
+
const requestId = this.nextRequestId();
|
|
125
|
+
this.captureOnRequest(requestId, method, []);
|
|
126
|
+
const result = {
|
|
127
|
+
data: constants_1.METHOD_NOT_REGISTERED,
|
|
128
|
+
};
|
|
129
|
+
this.captureOnRequestFail(requestId, method, result.data);
|
|
130
|
+
return result;
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.ProxyLegacy = ProxyLegacy;
|
|
136
|
+
//# sourceMappingURL=legacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy.js","sourceRoot":"","sources":["../../../../src/common/rpc-service/proxy/legacy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Emitter } from '@opensumi/ide-core-common';
|
|
2
|
+
import { RPCServiceMethod } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Store all executable services
|
|
5
|
+
*/
|
|
6
|
+
export declare class ServiceRegistry {
|
|
7
|
+
protected emitter: Emitter<string[]>;
|
|
8
|
+
private serviceMethodMap;
|
|
9
|
+
onServicesUpdate: import("@opensumi/ide-core-common").Event<string[]>;
|
|
10
|
+
register(name: string, methodFn: RPCServiceMethod): void;
|
|
11
|
+
registerService(service: any, options?: {
|
|
12
|
+
nameConverter?: (str: string) => string;
|
|
13
|
+
}): void;
|
|
14
|
+
has(name: PropertyKey): boolean;
|
|
15
|
+
invoke(name: PropertyKey, ...args: any[]): any;
|
|
16
|
+
methods(): PropertyKey[];
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/common/rpc-service/proxy/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C;;GAEG;AACH,qBAAa,eAAe;IAC1B,SAAS,CAAC,OAAO,oBAA2B;IAE5C,OAAO,CAAC,gBAAgB,CAA4C;IAEpE,gBAAgB,sDAAsB;IAEtC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB;IAKjD,eAAe,CACb,OAAO,EAAE,GAAG,EACZ,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;KACzC;IAkBH,GAAG,CAAC,IAAI,EAAE,WAAW;IAIrB,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG;IAM9C,OAAO;CAGR"}
|