@opensumi/ide-connection 2.27.3-rc-1708399099.0 → 2.27.3-rc-1710489030.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/README.md +1 -1
- package/lib/browser/ws-channel-handler.d.ts +1 -1
- package/lib/browser/ws-channel-handler.d.ts.map +1 -1
- package/lib/browser/ws-channel-handler.js +23 -33
- package/lib/browser/ws-channel-handler.js.map +1 -1
- package/lib/common/buffers/buffers.d.ts +1 -0
- package/lib/common/buffers/buffers.d.ts.map +1 -1
- package/lib/common/buffers/buffers.js +3 -3
- package/lib/common/buffers/buffers.js.map +1 -1
- package/lib/common/{utils.d.ts → capturer.d.ts} +1 -19
- package/lib/common/capturer.d.ts.map +1 -0
- package/lib/common/capturer.js +26 -0
- package/lib/common/capturer.js.map +1 -0
- package/lib/common/connection/drivers/frame-decoder.d.ts +40 -1
- package/lib/common/connection/drivers/frame-decoder.d.ts.map +1 -1
- package/lib/common/connection/drivers/frame-decoder.js +9 -10
- package/lib/common/connection/drivers/frame-decoder.js.map +1 -1
- package/lib/common/connection/drivers/index.d.ts +0 -1
- package/lib/common/connection/drivers/index.d.ts.map +1 -1
- package/lib/common/connection/drivers/index.js +0 -1
- package/lib/common/connection/drivers/index.js.map +1 -1
- package/lib/common/connection/drivers/message-port.d.ts.map +1 -1
- package/lib/common/connection/drivers/message-port.js +1 -4
- package/lib/common/connection/drivers/message-port.js.map +1 -1
- package/lib/common/connection/drivers/node-message-port.d.ts +1 -1
- package/lib/common/connection/drivers/node-message-port.d.ts.map +1 -1
- package/lib/common/connection/drivers/node-message-port.js.map +1 -1
- package/lib/common/connection/drivers/reconnecting-websocket.d.ts.map +1 -1
- package/lib/common/connection/drivers/reconnecting-websocket.js +1 -1
- package/lib/common/connection/drivers/reconnecting-websocket.js.map +1 -1
- package/lib/common/connection/drivers/socket.d.ts +3 -10
- package/lib/common/connection/drivers/socket.d.ts.map +1 -1
- package/lib/common/connection/drivers/socket.js +3 -36
- package/lib/common/connection/drivers/socket.js.map +1 -1
- package/lib/common/connection/drivers/stream.d.ts +17 -0
- package/lib/common/connection/drivers/stream.d.ts.map +1 -0
- package/lib/common/connection/drivers/stream.js +70 -0
- package/lib/common/connection/drivers/stream.js.map +1 -0
- package/lib/common/connection/drivers/ws-websocket.d.ts +1 -1
- package/lib/common/connection/drivers/ws-websocket.d.ts.map +1 -1
- package/lib/common/connection/drivers/ws-websocket.js.map +1 -1
- package/lib/common/fury-extends/any.d.ts +10 -7
- package/lib/common/fury-extends/any.d.ts.map +1 -1
- package/lib/common/fury-extends/any.js +126 -105
- package/lib/common/fury-extends/any.js.map +1 -1
- package/lib/common/fury-extends/one-of.d.ts +10 -5
- package/lib/common/fury-extends/one-of.d.ts.map +1 -1
- package/lib/common/fury-extends/one-of.js +65 -30
- package/lib/common/fury-extends/one-of.js.map +1 -1
- package/lib/common/fury-extends/shared.d.ts +2 -0
- package/lib/common/fury-extends/shared.d.ts.map +1 -1
- package/lib/common/fury-extends/shared.js.map +1 -1
- package/lib/common/index.d.ts +2 -2
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +2 -2
- package/lib/common/index.js.map +1 -1
- package/lib/common/message.d.ts +1 -1
- package/lib/common/message.d.ts.map +1 -1
- package/lib/common/rpc/connection.d.ts +31 -15
- package/lib/common/rpc/connection.d.ts.map +1 -1
- package/lib/common/rpc/connection.js +206 -138
- package/lib/common/rpc/connection.js.map +1 -1
- package/lib/common/rpc/index.d.ts +1 -1
- package/lib/common/rpc/index.d.ts.map +1 -1
- package/lib/common/rpc/index.js +1 -1
- package/lib/common/rpc/index.js.map +1 -1
- package/lib/common/rpc/message-io.d.ts +61 -0
- package/lib/common/rpc/message-io.d.ts.map +1 -0
- package/lib/common/rpc/message-io.js +159 -0
- package/lib/common/rpc/message-io.js.map +1 -0
- package/lib/common/rpc/multiplexer.d.ts +3 -0
- package/lib/common/rpc/multiplexer.d.ts.map +1 -1
- package/lib/common/rpc/multiplexer.js +3 -0
- package/lib/common/rpc/multiplexer.js.map +1 -1
- package/lib/common/rpc/types.d.ts +26 -5
- package/lib/common/rpc/types.d.ts.map +1 -1
- package/lib/common/rpc-service/center.d.ts +6 -3
- package/lib/common/rpc-service/center.d.ts.map +1 -1
- package/lib/common/rpc-service/center.js +39 -31
- package/lib/common/rpc-service/center.js.map +1 -1
- package/lib/common/rpc-service/proxy/base.d.ts +5 -3
- package/lib/common/rpc-service/proxy/base.d.ts.map +1 -1
- package/lib/common/rpc-service/proxy/base.js +56 -17
- package/lib/common/rpc-service/proxy/base.js.map +1 -1
- package/lib/common/rpc-service/proxy/index.d.ts +1 -3
- package/lib/common/rpc-service/proxy/index.d.ts.map +1 -1
- package/lib/common/rpc-service/proxy/index.js +1 -3
- package/lib/common/rpc-service/proxy/index.js.map +1 -1
- package/lib/common/rpc-service/proxy/{legacy.d.ts → json.d.ts} +5 -5
- package/lib/common/rpc-service/proxy/json.d.ts.map +1 -0
- package/lib/common/rpc-service/proxy/{legacy.js → json.js} +46 -56
- package/lib/common/rpc-service/proxy/json.js.map +1 -0
- package/lib/common/rpc-service/proxy/sumi.d.ts +1 -1
- package/lib/common/rpc-service/proxy/sumi.d.ts.map +1 -1
- package/lib/common/rpc-service/proxy/sumi.js +25 -37
- package/lib/common/rpc-service/proxy/sumi.js.map +1 -1
- package/lib/common/rpc-service/{proxy/registry.d.ts → registry.d.ts} +12 -1
- package/lib/common/rpc-service/registry.d.ts.map +1 -0
- package/lib/common/rpc-service/registry.js +99 -0
- package/lib/common/rpc-service/registry.js.map +1 -0
- package/lib/common/rpc-service/stub.js +4 -6
- package/lib/common/rpc-service/stub.js.map +1 -1
- package/lib/common/{ext-rpc-protocol.d.ts → rpcProtocol.d.ts} +2 -2
- package/lib/common/rpcProtocol.d.ts.map +1 -0
- package/lib/common/{ext-rpc-protocol.js → rpcProtocol.js} +5 -6
- package/lib/common/rpcProtocol.js.map +1 -0
- package/lib/common/server-handler.d.ts +35 -0
- package/lib/common/server-handler.d.ts.map +1 -0
- package/lib/common/server-handler.js +165 -0
- package/lib/common/server-handler.js.map +1 -0
- package/lib/common/types.d.ts +14 -0
- package/lib/common/types.d.ts.map +1 -1
- package/lib/common/ws-channel.d.ts +6 -10
- package/lib/common/ws-channel.d.ts.map +1 -1
- package/lib/common/ws-channel.js +16 -15
- package/lib/common/ws-channel.js.map +1 -1
- package/lib/electron/channel-handler.d.ts +14 -0
- package/lib/electron/channel-handler.d.ts.map +1 -0
- package/lib/electron/channel-handler.js +26 -0
- package/lib/electron/channel-handler.js.map +1 -0
- package/lib/electron/index.d.ts +2 -0
- package/lib/electron/index.d.ts.map +1 -0
- package/lib/electron/index.js +5 -0
- package/lib/electron/index.js.map +1 -0
- package/lib/node/common-channel-handler.d.ts +6 -25
- package/lib/node/common-channel-handler.d.ts.map +1 -1
- package/lib/node/common-channel-handler.js +9 -151
- package/lib/node/common-channel-handler.js.map +1 -1
- package/package.json +5 -5
- package/src/browser/ws-channel-handler.ts +26 -40
- package/src/common/buffers/buffers.ts +1 -1
- package/src/common/capturer.ts +36 -0
- package/src/common/connection/drivers/frame-decoder.ts +11 -11
- package/src/common/connection/drivers/index.ts +0 -1
- package/src/common/connection/drivers/message-port.ts +1 -4
- package/src/common/connection/drivers/node-message-port.ts +2 -2
- package/src/common/connection/drivers/reconnecting-websocket.ts +3 -2
- package/src/common/connection/drivers/socket.ts +4 -42
- package/src/common/connection/drivers/stream.ts +76 -0
- package/src/common/connection/drivers/ws-websocket.ts +2 -2
- package/src/common/fury-extends/any.ts +122 -102
- package/src/common/fury-extends/one-of.ts +79 -31
- package/src/common/fury-extends/shared.ts +3 -0
- package/src/common/index.ts +2 -2
- package/src/common/message.ts +1 -1
- package/src/common/rpc/connection.ts +228 -166
- package/src/common/rpc/index.ts +1 -1
- package/src/common/rpc/message-io.ts +223 -0
- package/src/common/rpc/multiplexer.ts +3 -0
- package/src/common/rpc/types.ts +30 -5
- package/src/common/rpc-service/center.ts +37 -31
- package/src/common/rpc-service/proxy/base.ts +59 -12
- package/src/common/rpc-service/proxy/index.ts +1 -3
- package/src/common/rpc-service/proxy/{legacy.ts → json.ts} +47 -57
- package/src/common/rpc-service/proxy/sumi.ts +23 -35
- package/src/common/rpc-service/registry.ts +125 -0
- package/src/common/rpc-service/stub.ts +6 -6
- package/src/common/{ext-rpc-protocol.ts → rpcProtocol.ts} +2 -2
- package/src/common/server-handler.ts +183 -0
- package/src/common/types.ts +13 -0
- package/src/common/ws-channel.ts +21 -23
- package/src/electron/channel-handler.ts +26 -0
- package/src/electron/index.ts +1 -0
- package/src/node/common-channel-handler.ts +10 -165
- package/lib/common/connection/drivers/utils.d.ts +0 -12
- package/lib/common/connection/drivers/utils.d.ts.map +0 -1
- package/lib/common/connection/drivers/utils.js +0 -49
- package/lib/common/connection/drivers/utils.js.map +0 -1
- package/lib/common/ext-rpc-protocol.d.ts.map +0 -1
- package/lib/common/ext-rpc-protocol.js.map +0 -1
- package/lib/common/rpc/packet.d.ts +0 -65
- package/lib/common/rpc/packet.d.ts.map +0 -1
- package/lib/common/rpc/packet.js +0 -82
- package/lib/common/rpc/packet.js.map +0 -1
- package/lib/common/rpc/protocol-repository.d.ts +0 -32
- package/lib/common/rpc/protocol-repository.d.ts.map +0 -1
- package/lib/common/rpc/protocol-repository.js +0 -118
- package/lib/common/rpc/protocol-repository.js.map +0 -1
- package/lib/common/rpc/utils.d.ts +0 -2
- package/lib/common/rpc/utils.d.ts.map +0 -1
- package/lib/common/rpc/utils.js +0 -10
- package/lib/common/rpc/utils.js.map +0 -1
- package/lib/common/rpc-service/proxy/invoker.d.ts +0 -14
- package/lib/common/rpc-service/proxy/invoker.d.ts.map +0 -1
- package/lib/common/rpc-service/proxy/invoker.js +0 -34
- package/lib/common/rpc-service/proxy/invoker.js.map +0 -1
- package/lib/common/rpc-service/proxy/legacy.d.ts.map +0 -1
- package/lib/common/rpc-service/proxy/legacy.js.map +0 -1
- package/lib/common/rpc-service/proxy/registry.d.ts.map +0 -1
- package/lib/common/rpc-service/proxy/registry.js +0 -46
- package/lib/common/rpc-service/proxy/registry.js.map +0 -1
- package/lib/common/utils.d.ts.map +0 -1
- package/lib/common/utils.js +0 -57
- package/lib/common/utils.js.map +0 -1
- package/src/common/connection/drivers/utils.ts +0 -52
- package/src/common/rpc/packet.ts +0 -104
- package/src/common/rpc/protocol-repository.ts +0 -180
- package/src/common/rpc/utils.ts +0 -5
- package/src/common/rpc-service/proxy/invoker.ts +0 -45
- package/src/common/rpc-service/proxy/registry.ts +0 -56
- package/src/common/utils.ts +0 -80
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MessageIO = exports.HeadersProto = exports.Status = exports.OperationType = void 0;
|
|
4
|
+
const fury_1 = require("@furyjs/fury");
|
|
5
|
+
const gen_1 = require("@furyjs/fury/dist/lib/gen");
|
|
6
|
+
const utils_1 = require("@opensumi/ide-core-common/lib/utils");
|
|
7
|
+
const any_1 = require("../fury-extends/any");
|
|
8
|
+
const shared_1 = require("../fury-extends/shared");
|
|
9
|
+
const ProtoVersionV1 = 1;
|
|
10
|
+
var OperationType;
|
|
11
|
+
(function (OperationType) {
|
|
12
|
+
OperationType[OperationType["Request"] = 0] = "Request";
|
|
13
|
+
OperationType[OperationType["Notification"] = 1] = "Notification";
|
|
14
|
+
OperationType[OperationType["Response"] = 2] = "Response";
|
|
15
|
+
OperationType[OperationType["Cancel"] = 3] = "Cancel";
|
|
16
|
+
})(OperationType = exports.OperationType || (exports.OperationType = {}));
|
|
17
|
+
var Status;
|
|
18
|
+
(function (Status) {
|
|
19
|
+
Status[Status["OK"] = 0] = "OK";
|
|
20
|
+
Status[Status["Err"] = 1] = "Err";
|
|
21
|
+
})(Status = exports.Status || (exports.Status = {}));
|
|
22
|
+
exports.HeadersProto = {
|
|
23
|
+
Request: fury_1.Type.object('req-headers', {
|
|
24
|
+
cancelable: fury_1.Type.bool(),
|
|
25
|
+
}),
|
|
26
|
+
Response: fury_1.Type.object('resp-headers', {
|
|
27
|
+
chunked: fury_1.Type.bool(),
|
|
28
|
+
}),
|
|
29
|
+
};
|
|
30
|
+
class SumiProtocolSerializer {
|
|
31
|
+
constructor(methodProtocol, fury) {
|
|
32
|
+
this.fury = fury;
|
|
33
|
+
const argsTuple = [];
|
|
34
|
+
for (const element of methodProtocol.request) {
|
|
35
|
+
argsTuple.push(element.type);
|
|
36
|
+
}
|
|
37
|
+
const requestProto = fury_1.Type.tuple(argsTuple);
|
|
38
|
+
const resultProto = methodProtocol.response.type || fury_1.Type.any();
|
|
39
|
+
this.request = this.fury.registerSerializer(requestProto);
|
|
40
|
+
this.result = this.fury.registerSerializer(resultProto);
|
|
41
|
+
}
|
|
42
|
+
writeRequest(args) {
|
|
43
|
+
return this.request.serializer.write(args);
|
|
44
|
+
}
|
|
45
|
+
readRequest() {
|
|
46
|
+
return this.request.serializer.read();
|
|
47
|
+
}
|
|
48
|
+
writeResponse(result) {
|
|
49
|
+
return this.result.serializer.write(result);
|
|
50
|
+
}
|
|
51
|
+
readResponse() {
|
|
52
|
+
return this.result.serializer.read();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
class AnyProtocolSerializer {
|
|
56
|
+
constructor(writer, reader) {
|
|
57
|
+
this.writer = writer;
|
|
58
|
+
this.reader = reader;
|
|
59
|
+
this.anySerializer = new any_1.AnySerializer(this.writer, this.reader);
|
|
60
|
+
}
|
|
61
|
+
writeRequest(args) {
|
|
62
|
+
this.anySerializer.write(args);
|
|
63
|
+
}
|
|
64
|
+
readRequest() {
|
|
65
|
+
return this.anySerializer.read();
|
|
66
|
+
}
|
|
67
|
+
writeResponse(result) {
|
|
68
|
+
this.anySerializer.write(result);
|
|
69
|
+
}
|
|
70
|
+
readResponse() {
|
|
71
|
+
return this.anySerializer.read();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
class MessageIO {
|
|
75
|
+
constructor() {
|
|
76
|
+
this.serializerMap = new Map();
|
|
77
|
+
const fury = (0, shared_1.furyFactory)();
|
|
78
|
+
this.fury = fury.fury;
|
|
79
|
+
this.reader = fury.reader;
|
|
80
|
+
this.writer = fury.writer;
|
|
81
|
+
this.requestHeadersSerializer = (0, gen_1.generateSerializer)(this.fury, exports.HeadersProto.Request);
|
|
82
|
+
this.responseHeadersSerializer = (0, gen_1.generateSerializer)(this.fury, exports.HeadersProto.Response);
|
|
83
|
+
this.anySerializer = new AnyProtocolSerializer(this.writer, this.reader);
|
|
84
|
+
}
|
|
85
|
+
has(name) {
|
|
86
|
+
return this.serializerMap.has(name);
|
|
87
|
+
}
|
|
88
|
+
loadProtocol(protocol, options) {
|
|
89
|
+
const { methods } = protocol;
|
|
90
|
+
for (const proto of methods) {
|
|
91
|
+
this.loadProtocolMethod(proto, options);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
loadProtocolMethod(methodProtocol, options) {
|
|
95
|
+
let method = methodProtocol.method;
|
|
96
|
+
if (options === null || options === void 0 ? void 0 : options.nameConverter) {
|
|
97
|
+
method = options.nameConverter(method);
|
|
98
|
+
}
|
|
99
|
+
this.serializerMap.set(method, new SumiProtocolSerializer(methodProtocol, this.fury));
|
|
100
|
+
}
|
|
101
|
+
getProcessor(method) {
|
|
102
|
+
const processor = this.serializerMap.get(method);
|
|
103
|
+
if (processor) {
|
|
104
|
+
return processor;
|
|
105
|
+
}
|
|
106
|
+
return this.anySerializer;
|
|
107
|
+
}
|
|
108
|
+
Notification(requestId, method, headers, args) {
|
|
109
|
+
const { writer } = this;
|
|
110
|
+
writer.reset();
|
|
111
|
+
writer.uint16((OperationType.Notification << 8) | ProtoVersionV1);
|
|
112
|
+
writer.uint32(requestId);
|
|
113
|
+
writer.stringOfVarUInt32(method);
|
|
114
|
+
this.requestHeadersSerializer.write(headers);
|
|
115
|
+
this.getProcessor(method).writeRequest(args);
|
|
116
|
+
return writer.dump();
|
|
117
|
+
}
|
|
118
|
+
Request(requestId, method, headers, args) {
|
|
119
|
+
const { writer } = this;
|
|
120
|
+
writer.reset();
|
|
121
|
+
writer.uint16((OperationType.Request << 8) | ProtoVersionV1);
|
|
122
|
+
writer.uint32(requestId);
|
|
123
|
+
writer.stringOfVarUInt32(method);
|
|
124
|
+
this.requestHeadersSerializer.write(headers);
|
|
125
|
+
this.getProcessor(method).writeRequest(args);
|
|
126
|
+
return writer.dump();
|
|
127
|
+
}
|
|
128
|
+
Cancel(requestId) {
|
|
129
|
+
const { writer } = this;
|
|
130
|
+
writer.reset();
|
|
131
|
+
writer.uint16((OperationType.Cancel << 8) | ProtoVersionV1);
|
|
132
|
+
writer.uint32(requestId);
|
|
133
|
+
return writer.dump();
|
|
134
|
+
}
|
|
135
|
+
Response(requestId, method, headers, result) {
|
|
136
|
+
const { writer } = this;
|
|
137
|
+
writer.reset();
|
|
138
|
+
writer.uint16((OperationType.Response << 8) | ProtoVersionV1);
|
|
139
|
+
writer.uint32(requestId);
|
|
140
|
+
writer.stringOfVarUInt32(method);
|
|
141
|
+
writer.uint16(Status.OK);
|
|
142
|
+
this.responseHeadersSerializer.write(headers);
|
|
143
|
+
this.getProcessor(method).writeResponse(result);
|
|
144
|
+
return writer.dump();
|
|
145
|
+
}
|
|
146
|
+
Error(requestId, method, headers, error) {
|
|
147
|
+
const { writer } = this;
|
|
148
|
+
writer.reset();
|
|
149
|
+
writer.uint16((OperationType.Response << 8) | ProtoVersionV1);
|
|
150
|
+
writer.uint32(requestId);
|
|
151
|
+
writer.stringOfVarUInt32(method);
|
|
152
|
+
writer.uint16(Status.Err);
|
|
153
|
+
this.responseHeadersSerializer.write(headers);
|
|
154
|
+
writer.stringOfVarUInt32((0, utils_1.stringifyError)(error));
|
|
155
|
+
return writer.dump();
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
exports.MessageIO = MessageIO;
|
|
159
|
+
//# sourceMappingURL=message-io.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-io.js","sourceRoot":"","sources":["../../../src/common/rpc/message-io.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,9 @@ export interface IRPCProtocol {
|
|
|
13
13
|
set<T>(identifier: ProxyIdentifier<T>, instance: T): T;
|
|
14
14
|
get<T>(identifier: ProxyIdentifier<T>): T;
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* A connection multiplexer that allows to register multiple local RPC services and to create proxies for them.
|
|
18
|
+
*/
|
|
16
19
|
export declare class SumiConnectionMultiplexer extends SumiConnection implements IRPCProtocol {
|
|
17
20
|
protected socket: BaseConnection<Uint8Array>;
|
|
18
21
|
protected options: ISumiConnectionOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiplexer.d.ts","sourceRoot":"","sources":["../../../src/common/rpc/multiplexer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEtE,qBAAa,eAAe,CAAC,CAAC,GAAG,GAAG;IAClC,OAAc,KAAK,SAAK;IAExB,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,OAAO,EAAE,MAAM,CAAC;gBACpB,SAAS,EAAE,MAAM;IAK7B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM;CAG7B;AAED,eAAO,MAAM,YAAY,eAAyB,CAAC;AACnD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5C,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IACvD,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CAC3C;AAaD,qBAAa,yBAA0B,SAAQ,cAAe,YAAW,YAAY;IAIvE,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC;IAAE,SAAS,CAAC,OAAO,EAAE,sBAAsB;IAHnG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;gBAEtB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAAY,OAAO,GAAE,sBAA2B;IAejG,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG;IAKpD,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;IAIrC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;IAQ9C,OAAO,CAAC,YAAY;YAmBN,gBAAgB;CAY/B"}
|
|
1
|
+
{"version":3,"file":"multiplexer.d.ts","sourceRoot":"","sources":["../../../src/common/rpc/multiplexer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEtE,qBAAa,eAAe,CAAC,CAAC,GAAG,GAAG;IAClC,OAAc,KAAK,SAAK;IAExB,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,OAAO,EAAE,MAAM,CAAC;gBACpB,SAAS,EAAE,MAAM;IAK7B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM;CAG7B;AAED,eAAO,MAAM,YAAY,eAAyB,CAAC;AACnD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5C,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IACvD,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CAC3C;AAaD;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,cAAe,YAAW,YAAY;IAIvE,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC;IAAE,SAAS,CAAC,OAAO,EAAE,sBAAsB;IAHnG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;gBAEtB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAAY,OAAO,GAAE,sBAA2B;IAejG,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG;IAKpD,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;IAIrC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;IAQ9C,OAAO,CAAC,YAAY;YAmBN,gBAAgB;CAY/B"}
|
|
@@ -22,6 +22,9 @@ function extractServiceAndMethod(rpcId) {
|
|
|
22
22
|
const idx = rpcId.indexOf(SEP);
|
|
23
23
|
return [rpcId.substring(0, idx), rpcId.substring(idx + 1)];
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* A connection multiplexer that allows to register multiple local RPC services and to create proxies for them.
|
|
27
|
+
*/
|
|
25
28
|
class SumiConnectionMultiplexer extends connection_1.SumiConnection {
|
|
26
29
|
constructor(socket, options = {}) {
|
|
27
30
|
super(socket, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiplexer.js","sourceRoot":"","sources":["../../../src/common/rpc/multiplexer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"multiplexer.js","sourceRoot":"","sources":["../../../src/common/rpc/multiplexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,34 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import { Headers, RPCProtocol as _RPCProtocol, RPCProtocolMethod as _RPCProtocolMethod, Request as _Request, Response as _Response } from '@opensumi/ide-core-common/lib/types/rpc';
|
|
2
|
+
import type Fury from '@furyjs/fury';
|
|
3
|
+
import type { Serializer, TypeDescription } from '@furyjs/fury';
|
|
3
4
|
export type TSumiProtocol = _RPCProtocol<TypeDescription>;
|
|
4
5
|
export type TSumiProtocolMethod = _RPCProtocolMethod<TypeDescription>;
|
|
5
6
|
export type TSumiRequest = _Request<TypeDescription>;
|
|
6
7
|
export type TSumiResponse = _Response<TypeDescription>;
|
|
7
|
-
export type TRequestCallback = (headers: Record<string, any>, error?: any, payload?:
|
|
8
|
+
export type TRequestCallback = (headers: Record<string, any>, error?: any, payload?: any) => void;
|
|
8
9
|
export type THandlerResult<R> = R | Promise<R>;
|
|
9
10
|
export type TGenericNotificationHandler = (...args: any[]) => void | Promise<void>;
|
|
10
11
|
export type TGenericRequestHandler<R> = (...args: any[]) => THandlerResult<R>;
|
|
11
|
-
export type
|
|
12
|
-
export type
|
|
12
|
+
export type TRequestNotFoundHandler = (method: string, args: any[]) => THandlerResult<any>;
|
|
13
|
+
export type TNotificationNotFoundHandler = (method: string, args: any[]) => THandlerResult<void>;
|
|
14
|
+
export type TSerializer = {
|
|
15
|
+
serializer: Serializer;
|
|
16
|
+
} & Omit<ReturnType<Fury['registerSerializer']>, 'serializer'>;
|
|
17
|
+
export interface IRequestHeaders extends Headers {
|
|
18
|
+
/**
|
|
19
|
+
* If set to true, the request can be canceled.
|
|
20
|
+
*
|
|
21
|
+
* the server will push a `CancellationToken` to the request arguments.
|
|
22
|
+
*/
|
|
23
|
+
cancelable?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export type IResponseHeaders = Headers;
|
|
26
|
+
export type ITransferable = any;
|
|
27
|
+
export type TRequestTransferable = ITransferable[];
|
|
28
|
+
export interface IProtocolSerializer {
|
|
29
|
+
writeRequest(args: any[]): void;
|
|
30
|
+
readRequest(): any[];
|
|
31
|
+
writeResponse<T = any>(result: T): void;
|
|
32
|
+
readResponse<T = any>(): T;
|
|
33
|
+
}
|
|
13
34
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/rpc/types.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/rpc/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,WAAW,IAAI,YAAY,EAC3B,iBAAiB,IAAI,kBAAkB,EACvC,OAAO,IAAI,QAAQ,EACnB,QAAQ,IAAI,SAAS,EACtB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;AAC1D,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;AACtE,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;AACrD,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;AAEvD,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;AAElG,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE/C,MAAM,MAAM,2BAA2B,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACnF,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC;AAE9E,MAAM,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC;AAC3F,MAAM,MAAM,4BAA4B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC;AAEjG,MAAM,MAAM,WAAW,GAAG;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAElH,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEvC,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC;AAChC,MAAM,MAAM,oBAAoB,GAAG,aAAa,EAAE,CAAC;AAEnD,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAChC,WAAW,IAAI,GAAG,EAAE,CAAC;IACrB,aAAa,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IACxC,YAAY,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;CAC5B"}
|
|
@@ -5,9 +5,9 @@ import { IBench, ILogger, RPCServiceMethod, ServiceType } from '../types';
|
|
|
5
5
|
export declare class RPCServiceCenter {
|
|
6
6
|
private bench?;
|
|
7
7
|
uid: string;
|
|
8
|
-
private
|
|
9
|
-
private
|
|
10
|
-
private
|
|
8
|
+
private proxies;
|
|
9
|
+
private serviceRegistry;
|
|
10
|
+
private protocolRegistry;
|
|
11
11
|
private deferred;
|
|
12
12
|
private logger;
|
|
13
13
|
constructor(bench?: IBench | undefined, logger?: ILogger);
|
|
@@ -24,4 +24,7 @@ export declare class RPCServiceCenter {
|
|
|
24
24
|
onRequestService(serviceName: string, service: any): void;
|
|
25
25
|
broadcast(serviceName: string, _name: string, ...args: any[]): Promise<any>;
|
|
26
26
|
}
|
|
27
|
+
export declare function getNotificationName(serviceName: string, name: string): string;
|
|
28
|
+
export declare function getRequestName(serviceName: string, name: string): string;
|
|
29
|
+
export declare function getMethodName(serviceName: string, name: string): string;
|
|
27
30
|
//# sourceMappingURL=center.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"center.d.ts","sourceRoot":"","sources":["../../../src/common/rpc-service/center.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"center.d.ts","sourceRoot":"","sources":["../../../src/common/rpc-service/center.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAQ1E,qBAAa,gBAAgB;IAWf,OAAO,CAAC,KAAK,CAAC;IAVnB,GAAG,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,gBAAgB,CAA0B;IAElD,OAAO,CAAC,QAAQ,CAAwB;IACxC,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,YAAY,CAAC,QAAQ,EAAE,aAAa;IAMpC,iBAAiB,CAAC,UAAU,EAAE,cAAc;;;IAqB5C,aAAa,CAAC,UAAU,EAAE,iBAAiB;;;IAoB3C,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAItE,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAM5C,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CA6BlF;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"}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RPCServiceCenter = void 0;
|
|
3
|
+
exports.getMethodName = exports.getRequestName = exports.getNotificationName = 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 rpc_1 = require("../rpc");
|
|
7
6
|
const types_1 = require("../types");
|
|
8
|
-
const utils_1 = require("../utils");
|
|
9
7
|
const proxy_1 = require("./proxy");
|
|
8
|
+
const registry_1 = require("./registry");
|
|
10
9
|
const safeProcess = typeof process === 'undefined' ? { pid: 'unknown' } : process;
|
|
11
10
|
class RPCServiceCenter {
|
|
12
11
|
constructor(bench, logger) {
|
|
13
12
|
this.bench = bench;
|
|
14
|
-
this.
|
|
15
|
-
this.
|
|
16
|
-
this.
|
|
13
|
+
this.proxies = [];
|
|
14
|
+
this.serviceRegistry = new registry_1.ServiceRegistry();
|
|
15
|
+
this.protocolRegistry = new registry_1.ProtocolRegistry();
|
|
17
16
|
this.deferred = new ide_core_common_1.Deferred();
|
|
18
17
|
this.uid = 'RPCServiceCenter:' + safeProcess.pid;
|
|
19
18
|
this.logger = logger || console;
|
|
@@ -29,56 +28,53 @@ class RPCServiceCenter {
|
|
|
29
28
|
return this.deferred.promise;
|
|
30
29
|
}
|
|
31
30
|
loadProtocol(protocol) {
|
|
32
|
-
this.
|
|
33
|
-
nameConverter: (name) =>
|
|
31
|
+
this.protocolRegistry.addProtocol(protocol, {
|
|
32
|
+
nameConverter: (name) => getMethodName(protocol.name, name),
|
|
34
33
|
});
|
|
35
34
|
}
|
|
36
35
|
setSumiConnection(connection) {
|
|
37
|
-
if (this.
|
|
36
|
+
if (this.proxies.length === 0) {
|
|
38
37
|
this.deferred.resolve();
|
|
39
38
|
}
|
|
40
|
-
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
this.invokers.push(invoker);
|
|
39
|
+
this.protocolRegistry.applyTo(connection.io);
|
|
40
|
+
const index = this.proxies.length - 1;
|
|
41
|
+
const proxy = new proxy_1.ProxySumi(this.serviceRegistry, this.logger);
|
|
42
|
+
proxy.listen(connection);
|
|
43
|
+
this.proxies.push(proxy);
|
|
46
44
|
return {
|
|
47
45
|
dispose: () => {
|
|
48
|
-
this.
|
|
49
|
-
|
|
46
|
+
this.proxies.splice(index, 1);
|
|
47
|
+
proxy.dispose();
|
|
50
48
|
},
|
|
51
49
|
};
|
|
52
50
|
}
|
|
53
51
|
setConnection(connection) {
|
|
54
|
-
if (this.
|
|
52
|
+
if (this.proxies.length === 0) {
|
|
55
53
|
this.deferred.resolve();
|
|
56
54
|
}
|
|
57
|
-
const index = this.
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
invoker.attachLegacy(legacyProxy);
|
|
62
|
-
this.invokers.push(invoker);
|
|
55
|
+
const index = this.proxies.length - 1;
|
|
56
|
+
const proxy = new proxy_1.ProxyJson(this.serviceRegistry, this.logger);
|
|
57
|
+
proxy.listen(connection);
|
|
58
|
+
this.proxies.push(proxy);
|
|
63
59
|
return {
|
|
64
60
|
dispose: () => {
|
|
65
|
-
this.
|
|
66
|
-
|
|
61
|
+
this.proxies.splice(index, 1);
|
|
62
|
+
proxy.dispose();
|
|
67
63
|
},
|
|
68
64
|
};
|
|
69
65
|
}
|
|
70
66
|
onRequest(serviceName, _name, method) {
|
|
71
|
-
this.
|
|
67
|
+
this.serviceRegistry.register(getMethodName(serviceName, _name), method);
|
|
72
68
|
}
|
|
73
69
|
onRequestService(serviceName, service) {
|
|
74
|
-
this.
|
|
75
|
-
nameConverter: (name) =>
|
|
70
|
+
this.serviceRegistry.registerService(service, {
|
|
71
|
+
nameConverter: (name) => getMethodName(serviceName, name),
|
|
76
72
|
});
|
|
77
73
|
}
|
|
78
74
|
async broadcast(serviceName, _name, ...args) {
|
|
79
75
|
await this.ready();
|
|
80
|
-
const name =
|
|
81
|
-
const broadcastResult = await Promise.all(this.
|
|
76
|
+
const name = getMethodName(serviceName, _name);
|
|
77
|
+
const broadcastResult = await Promise.all(this.proxies.map((proxy) => proxy.invoke(name, ...args)));
|
|
82
78
|
const doubtfulResult = [];
|
|
83
79
|
const result = [];
|
|
84
80
|
for (const i of broadcastResult) {
|
|
@@ -102,4 +98,16 @@ class RPCServiceCenter {
|
|
|
102
98
|
}
|
|
103
99
|
}
|
|
104
100
|
exports.RPCServiceCenter = RPCServiceCenter;
|
|
101
|
+
function getNotificationName(serviceName, name) {
|
|
102
|
+
return `on:${serviceName}:${name}`;
|
|
103
|
+
}
|
|
104
|
+
exports.getNotificationName = getNotificationName;
|
|
105
|
+
function getRequestName(serviceName, name) {
|
|
106
|
+
return `${serviceName}:${name}`;
|
|
107
|
+
}
|
|
108
|
+
exports.getRequestName = getRequestName;
|
|
109
|
+
function getMethodName(serviceName, name) {
|
|
110
|
+
return name.startsWith('on') ? getNotificationName(serviceName, name) : getRequestName(serviceName, name);
|
|
111
|
+
}
|
|
112
|
+
exports.getMethodName = getMethodName;
|
|
105
113
|
//# sourceMappingURL=center.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"center.js","sourceRoot":"","sources":["../../../src/common/rpc-service/center.ts"],"names":[],"mappings":";;;AAAA,+DAAqD;AAGrD,4CAAqD;
|
|
1
|
+
{"version":3,"file":"center.js","sourceRoot":"","sources":["../../../src/common/rpc-service/center.ts"],"names":[],"mappings":";;;AAAA,+DAAqD;AAGrD,4CAAqD;AAGrD,oCAA0E;AAE1E,mCAA+C;AAE/C,yCAA+D;AAE/D,MAAM,WAAW,GAAoB,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAE,OAAe,CAAC;AAE5G,MAAa,gBAAgB;IAW3B,YAAoB,KAAc,EAAE,MAAgB;QAAhC,UAAK,GAAL,KAAK,CAAS;QAR1B,YAAO,GAAqB,EAAE,CAAC;QAE/B,oBAAe,GAAG,IAAI,0BAAe,EAAE,CAAC;QACxC,qBAAgB,GAAG,IAAI,2BAAgB,EAAE,CAAC;QAE1C,aAAQ,GAAG,IAAI,0BAAQ,EAAQ,CAAC;QAItC,IAAI,CAAC,GAAG,GAAG,mBAAmB,GAAG,WAAW,CAAC,GAAG,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC;IAClC,CAAC;IAED,eAAe,CAAC,WAAmB,EAAE,IAAiB;QACpD,IAAI,IAAI,KAAK,mBAAW,CAAC,OAAO,EAAE;YAChC,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;aACzC;SACF;IACH,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,QAAuB;QAClC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC1C,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,UAA0B;QAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;SACzB;QAED,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAE7C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,iBAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzB,OAAO;YACL,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC9B,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,UAA6B;QACzC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;SACzB;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAEtC,MAAM,KAAK,GAAG,IAAI,iBAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzB,OAAO;YACL,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC9B,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,WAAmB,EAAE,KAAa,EAAE,MAAwB;QACpE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED,gBAAgB,CAAC,WAAmB,EAAE,OAAY;QAChD,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE;YAC5C,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC;SAC1D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,WAAmB,EAAE,KAAa,EAAE,GAAG,IAAW;QAChE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpG,MAAM,cAAc,GAAG,EAAW,CAAC;QACnC,MAAM,MAAM,GAAG,EAAW,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE;YAC/B,IAAI,CAAC,KAAK,iCAAqB,EAAE;gBAC/B,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACxB;iBAAM;gBACL,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAChB;SACF;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,kCAAkC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACvG;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,kDAAkD,CAAC,CAAC;SAC5F;QAED,yHAAyH;QACzH,kGAAkG;QAClG,8BAA8B;QAC9B,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAClD,CAAC;CACF;AAlHD,4CAkHC;AAED,SAAgB,mBAAmB,CAAC,WAAmB,EAAE,IAAY;IACnE,OAAO,MAAM,WAAW,IAAI,IAAI,EAAE,CAAC;AACrC,CAAC;AAFD,kDAEC;AACD,SAAgB,cAAc,CAAC,WAAmB,EAAE,IAAY;IAC9D,OAAO,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC;AAClC,CAAC;AAFD,wCAEC;AAED,SAAgB,aAAa,CAAC,WAAmB,EAAE,IAAY;IAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC5G,CAAC;AAFD,sCAEC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Deferred } from '@opensumi/ide-core-common';
|
|
2
2
|
import { ILogger, IRPCServiceMap } from '../../types';
|
|
3
|
-
import type { ServiceRegistry } from '
|
|
3
|
+
import type { ServiceRegistry } from '../registry';
|
|
4
4
|
interface IBaseConnection {
|
|
5
5
|
listen(): void;
|
|
6
6
|
dispose(): void;
|
|
@@ -10,7 +10,8 @@ export declare abstract class ProxyBase<T extends IBaseConnection> {
|
|
|
10
10
|
protected logger: ILogger;
|
|
11
11
|
protected connection: T;
|
|
12
12
|
protected connectionPromise: Deferred<void>;
|
|
13
|
-
protected abstract engine: '
|
|
13
|
+
protected abstract engine: 'json' | 'sumi';
|
|
14
|
+
capturer: (data: any) => void;
|
|
14
15
|
constructor(registry: ServiceRegistry, logger?: ILogger);
|
|
15
16
|
private capture;
|
|
16
17
|
protected nextRequestId(): string;
|
|
@@ -25,8 +26,9 @@ export declare abstract class ProxyBase<T extends IBaseConnection> {
|
|
|
25
26
|
listen(connection: T): void;
|
|
26
27
|
listenService(service: IRPCServiceMap): void;
|
|
27
28
|
dispose(): void;
|
|
28
|
-
abstract
|
|
29
|
+
abstract invoke(prop: string, ...args: any[]): Promise<any>;
|
|
29
30
|
protected abstract bindMethods(services: PropertyKey[]): void;
|
|
31
|
+
getInvokeProxy<T = any>(): T;
|
|
30
32
|
}
|
|
31
33
|
export {};
|
|
32
34
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/common/rpc-service/proxy/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/common/rpc-service/proxy/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGrD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,UAAU,eAAe;IACvB,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;CACjB;AAMD,8BAAsB,SAAS,CAAC,CAAC,SAAS,eAAe;IASpC,QAAQ,EAAE,eAAe;IAR5C,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,MAAM,GAAG,MAAM,CAAC;IAC3C,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;gBAEX,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,OAAO;IAa9D,OAAO,CAAC,OAAO;IAOf,SAAS,CAAC,aAAa;IAIvB,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAOvF,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAa3F,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAgB1F,SAAS,CAAC,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAOzE,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAOzF,SAAS,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAc7F,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAc5F,SAAS,CAAC,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAO3E,MAAM,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI;IAQpB,aAAa,CAAC,OAAO,EAAE,cAAc;IAI5C,OAAO,IAAI,IAAI;aAMC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAClE,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI;IAEtD,cAAc,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;CAiBpC"}
|
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ProxyBase = void 0;
|
|
4
4
|
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
5
|
-
const
|
|
5
|
+
const capturer_1 = require("../../capturer");
|
|
6
|
+
const defaultReservedWordSet = new Set(['then', 'finally']);
|
|
6
7
|
let requestId = 0;
|
|
7
8
|
class ProxyBase {
|
|
8
9
|
constructor(registry, logger) {
|
|
9
10
|
this.registry = registry;
|
|
10
11
|
this.connectionPromise = new ide_core_common_1.Deferred();
|
|
11
12
|
this.logger = logger || console;
|
|
13
|
+
this.capturer = (0, capturer_1.getCapturer)();
|
|
12
14
|
this.registry.onServicesUpdate((services) => {
|
|
13
15
|
if (this.connection) {
|
|
14
16
|
this.bindMethods(services);
|
|
@@ -17,62 +19,83 @@ class ProxyBase {
|
|
|
17
19
|
}
|
|
18
20
|
// capture messages for opensumi devtools
|
|
19
21
|
capture(message) {
|
|
20
|
-
|
|
21
|
-
if ((0, ide_core_common_1.isDefined)(capturer)) {
|
|
22
|
-
capturer(Object.assign(Object.assign({}, message), { engine: this.engine }));
|
|
23
|
-
}
|
|
22
|
+
this.capturer(Object.assign(Object.assign({}, message), { engine: this.engine }));
|
|
24
23
|
}
|
|
25
24
|
nextRequestId() {
|
|
26
25
|
return String(requestId++);
|
|
27
26
|
}
|
|
28
27
|
captureOnRequest(requestId, serviceMethod, args) {
|
|
29
|
-
this.
|
|
28
|
+
if (!this.capturer) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
this.capture({ type: capturer_1.MessageType.OnRequest, requestId, serviceMethod, arguments: args });
|
|
30
32
|
}
|
|
31
33
|
captureOnRequestResult(requestId, serviceMethod, data) {
|
|
34
|
+
if (!this.capturer) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
32
37
|
this.capture({
|
|
33
|
-
type:
|
|
34
|
-
status:
|
|
38
|
+
type: capturer_1.MessageType.OnRequestResult,
|
|
39
|
+
status: capturer_1.ResponseStatus.Success,
|
|
35
40
|
requestId,
|
|
36
41
|
serviceMethod,
|
|
37
42
|
data,
|
|
38
43
|
});
|
|
39
44
|
}
|
|
40
45
|
captureOnRequestFail(requestId, serviceMethod, error) {
|
|
46
|
+
if (!this.capturer) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
41
49
|
this.logger.warn(`request exec ${serviceMethod} error`, error);
|
|
42
50
|
this.capture({
|
|
43
|
-
type:
|
|
44
|
-
status:
|
|
51
|
+
type: capturer_1.MessageType.OnRequestResult,
|
|
52
|
+
status: capturer_1.ResponseStatus.Fail,
|
|
45
53
|
requestId,
|
|
46
54
|
serviceMethod,
|
|
47
55
|
error,
|
|
48
56
|
});
|
|
49
57
|
}
|
|
50
58
|
captureOnNotification(serviceMethod, args) {
|
|
51
|
-
this.
|
|
59
|
+
if (!this.capturer) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
this.capture({ type: capturer_1.MessageType.OnNotification, serviceMethod, arguments: args });
|
|
52
63
|
}
|
|
53
64
|
captureSendRequest(requestId, serviceMethod, args) {
|
|
54
|
-
this.
|
|
65
|
+
if (!this.capturer) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
this.capture({ type: capturer_1.MessageType.SendRequest, requestId, serviceMethod, arguments: args });
|
|
55
69
|
}
|
|
56
70
|
captureSendRequestResult(requestId, serviceMethod, data) {
|
|
71
|
+
if (!this.capturer) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
57
74
|
this.capture({
|
|
58
|
-
type:
|
|
59
|
-
status:
|
|
75
|
+
type: capturer_1.MessageType.RequestResult,
|
|
76
|
+
status: capturer_1.ResponseStatus.Success,
|
|
60
77
|
requestId,
|
|
61
78
|
serviceMethod,
|
|
62
79
|
data,
|
|
63
80
|
});
|
|
64
81
|
}
|
|
65
82
|
captureSendRequestFail(requestId, serviceMethod, error) {
|
|
83
|
+
if (!this.capturer) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
66
86
|
this.capture({
|
|
67
|
-
type:
|
|
68
|
-
status:
|
|
87
|
+
type: capturer_1.MessageType.RequestResult,
|
|
88
|
+
status: capturer_1.ResponseStatus.Fail,
|
|
69
89
|
requestId,
|
|
70
90
|
serviceMethod,
|
|
71
91
|
error,
|
|
72
92
|
});
|
|
73
93
|
}
|
|
74
94
|
captureSendNotification(serviceMethod, args) {
|
|
75
|
-
this.
|
|
95
|
+
if (!this.capturer) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
this.capture({ type: capturer_1.MessageType.SendNotification, serviceMethod, arguments: args });
|
|
76
99
|
}
|
|
77
100
|
listen(connection) {
|
|
78
101
|
this.connection = connection;
|
|
@@ -88,6 +111,22 @@ class ProxyBase {
|
|
|
88
111
|
this.connection.dispose();
|
|
89
112
|
}
|
|
90
113
|
}
|
|
114
|
+
getInvokeProxy() {
|
|
115
|
+
return new Proxy(Object.create(null), {
|
|
116
|
+
get: (target, p) => {
|
|
117
|
+
if (typeof p !== 'string') {
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
if (defaultReservedWordSet.has(p)) {
|
|
121
|
+
return Promise.resolve();
|
|
122
|
+
}
|
|
123
|
+
if (!target[p]) {
|
|
124
|
+
target[p] = (...args) => this.invoke(p, ...args);
|
|
125
|
+
}
|
|
126
|
+
return target[p];
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
}
|
|
91
130
|
}
|
|
92
131
|
exports.ProxyBase = ProxyBase;
|
|
93
132
|
//# sourceMappingURL=base.js.map
|