@opensumi/ide-connection 2.27.3-rc-1708399099.0 → 2.27.3-rc-1710386185.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.
Files changed (201) hide show
  1. package/README.md +1 -1
  2. package/lib/browser/ws-channel-handler.d.ts +1 -1
  3. package/lib/browser/ws-channel-handler.d.ts.map +1 -1
  4. package/lib/browser/ws-channel-handler.js +23 -33
  5. package/lib/browser/ws-channel-handler.js.map +1 -1
  6. package/lib/common/buffers/buffers.d.ts +1 -0
  7. package/lib/common/buffers/buffers.d.ts.map +1 -1
  8. package/lib/common/buffers/buffers.js +3 -3
  9. package/lib/common/buffers/buffers.js.map +1 -1
  10. package/lib/common/{utils.d.ts → capturer.d.ts} +1 -19
  11. package/lib/common/capturer.d.ts.map +1 -0
  12. package/lib/common/capturer.js +26 -0
  13. package/lib/common/capturer.js.map +1 -0
  14. package/lib/common/connection/drivers/frame-decoder.d.ts +40 -1
  15. package/lib/common/connection/drivers/frame-decoder.d.ts.map +1 -1
  16. package/lib/common/connection/drivers/frame-decoder.js +9 -10
  17. package/lib/common/connection/drivers/frame-decoder.js.map +1 -1
  18. package/lib/common/connection/drivers/index.d.ts +0 -1
  19. package/lib/common/connection/drivers/index.d.ts.map +1 -1
  20. package/lib/common/connection/drivers/index.js +0 -1
  21. package/lib/common/connection/drivers/index.js.map +1 -1
  22. package/lib/common/connection/drivers/message-port.d.ts.map +1 -1
  23. package/lib/common/connection/drivers/message-port.js +1 -4
  24. package/lib/common/connection/drivers/message-port.js.map +1 -1
  25. package/lib/common/connection/drivers/node-message-port.d.ts +1 -1
  26. package/lib/common/connection/drivers/node-message-port.d.ts.map +1 -1
  27. package/lib/common/connection/drivers/node-message-port.js.map +1 -1
  28. package/lib/common/connection/drivers/reconnecting-websocket.d.ts.map +1 -1
  29. package/lib/common/connection/drivers/reconnecting-websocket.js +1 -1
  30. package/lib/common/connection/drivers/reconnecting-websocket.js.map +1 -1
  31. package/lib/common/connection/drivers/socket.d.ts +3 -10
  32. package/lib/common/connection/drivers/socket.d.ts.map +1 -1
  33. package/lib/common/connection/drivers/socket.js +3 -36
  34. package/lib/common/connection/drivers/socket.js.map +1 -1
  35. package/lib/common/connection/drivers/stream.d.ts +17 -0
  36. package/lib/common/connection/drivers/stream.d.ts.map +1 -0
  37. package/lib/common/connection/drivers/stream.js +70 -0
  38. package/lib/common/connection/drivers/stream.js.map +1 -0
  39. package/lib/common/connection/drivers/ws-websocket.d.ts +1 -1
  40. package/lib/common/connection/drivers/ws-websocket.d.ts.map +1 -1
  41. package/lib/common/connection/drivers/ws-websocket.js.map +1 -1
  42. package/lib/common/fury-extends/any.d.ts +10 -7
  43. package/lib/common/fury-extends/any.d.ts.map +1 -1
  44. package/lib/common/fury-extends/any.js +126 -105
  45. package/lib/common/fury-extends/any.js.map +1 -1
  46. package/lib/common/fury-extends/one-of.d.ts +10 -5
  47. package/lib/common/fury-extends/one-of.d.ts.map +1 -1
  48. package/lib/common/fury-extends/one-of.js +65 -30
  49. package/lib/common/fury-extends/one-of.js.map +1 -1
  50. package/lib/common/fury-extends/shared.d.ts +2 -0
  51. package/lib/common/fury-extends/shared.d.ts.map +1 -1
  52. package/lib/common/fury-extends/shared.js.map +1 -1
  53. package/lib/common/index.d.ts +2 -2
  54. package/lib/common/index.d.ts.map +1 -1
  55. package/lib/common/index.js +2 -2
  56. package/lib/common/index.js.map +1 -1
  57. package/lib/common/message.d.ts +1 -1
  58. package/lib/common/message.d.ts.map +1 -1
  59. package/lib/common/rpc/connection.d.ts +31 -15
  60. package/lib/common/rpc/connection.d.ts.map +1 -1
  61. package/lib/common/rpc/connection.js +206 -138
  62. package/lib/common/rpc/connection.js.map +1 -1
  63. package/lib/common/rpc/index.d.ts +1 -1
  64. package/lib/common/rpc/index.d.ts.map +1 -1
  65. package/lib/common/rpc/index.js +1 -1
  66. package/lib/common/rpc/index.js.map +1 -1
  67. package/lib/common/rpc/message-io.d.ts +61 -0
  68. package/lib/common/rpc/message-io.d.ts.map +1 -0
  69. package/lib/common/rpc/message-io.js +159 -0
  70. package/lib/common/rpc/message-io.js.map +1 -0
  71. package/lib/common/rpc/multiplexer.d.ts +3 -0
  72. package/lib/common/rpc/multiplexer.d.ts.map +1 -1
  73. package/lib/common/rpc/multiplexer.js +3 -0
  74. package/lib/common/rpc/multiplexer.js.map +1 -1
  75. package/lib/common/rpc/types.d.ts +26 -5
  76. package/lib/common/rpc/types.d.ts.map +1 -1
  77. package/lib/common/rpc-service/center.d.ts +6 -3
  78. package/lib/common/rpc-service/center.d.ts.map +1 -1
  79. package/lib/common/rpc-service/center.js +39 -31
  80. package/lib/common/rpc-service/center.js.map +1 -1
  81. package/lib/common/rpc-service/proxy/base.d.ts +5 -3
  82. package/lib/common/rpc-service/proxy/base.d.ts.map +1 -1
  83. package/lib/common/rpc-service/proxy/base.js +56 -17
  84. package/lib/common/rpc-service/proxy/base.js.map +1 -1
  85. package/lib/common/rpc-service/proxy/index.d.ts +1 -3
  86. package/lib/common/rpc-service/proxy/index.d.ts.map +1 -1
  87. package/lib/common/rpc-service/proxy/index.js +1 -3
  88. package/lib/common/rpc-service/proxy/index.js.map +1 -1
  89. package/lib/common/rpc-service/proxy/{legacy.d.ts → json.d.ts} +5 -5
  90. package/lib/common/rpc-service/proxy/json.d.ts.map +1 -0
  91. package/lib/common/rpc-service/proxy/{legacy.js → json.js} +46 -56
  92. package/lib/common/rpc-service/proxy/json.js.map +1 -0
  93. package/lib/common/rpc-service/proxy/sumi.d.ts +1 -1
  94. package/lib/common/rpc-service/proxy/sumi.d.ts.map +1 -1
  95. package/lib/common/rpc-service/proxy/sumi.js +25 -37
  96. package/lib/common/rpc-service/proxy/sumi.js.map +1 -1
  97. package/lib/common/rpc-service/{proxy/registry.d.ts → registry.d.ts} +12 -1
  98. package/lib/common/rpc-service/registry.d.ts.map +1 -0
  99. package/lib/common/rpc-service/registry.js +99 -0
  100. package/lib/common/rpc-service/registry.js.map +1 -0
  101. package/lib/common/rpc-service/stub.js +4 -6
  102. package/lib/common/rpc-service/stub.js.map +1 -1
  103. package/lib/common/{ext-rpc-protocol.d.ts → rpcProtocol.d.ts} +2 -2
  104. package/lib/common/rpcProtocol.d.ts.map +1 -0
  105. package/lib/common/{ext-rpc-protocol.js → rpcProtocol.js} +5 -6
  106. package/lib/common/rpcProtocol.js.map +1 -0
  107. package/lib/common/server-handler.d.ts +35 -0
  108. package/lib/common/server-handler.d.ts.map +1 -0
  109. package/lib/common/server-handler.js +165 -0
  110. package/lib/common/server-handler.js.map +1 -0
  111. package/lib/common/types.d.ts +14 -0
  112. package/lib/common/types.d.ts.map +1 -1
  113. package/lib/common/ws-channel.d.ts +6 -10
  114. package/lib/common/ws-channel.d.ts.map +1 -1
  115. package/lib/common/ws-channel.js +16 -15
  116. package/lib/common/ws-channel.js.map +1 -1
  117. package/lib/electron/channel-handler.d.ts +14 -0
  118. package/lib/electron/channel-handler.d.ts.map +1 -0
  119. package/lib/electron/channel-handler.js +26 -0
  120. package/lib/electron/channel-handler.js.map +1 -0
  121. package/lib/electron/index.d.ts +2 -0
  122. package/lib/electron/index.d.ts.map +1 -0
  123. package/lib/electron/index.js +5 -0
  124. package/lib/electron/index.js.map +1 -0
  125. package/lib/node/common-channel-handler.d.ts +6 -25
  126. package/lib/node/common-channel-handler.d.ts.map +1 -1
  127. package/lib/node/common-channel-handler.js +9 -151
  128. package/lib/node/common-channel-handler.js.map +1 -1
  129. package/package.json +5 -5
  130. package/src/browser/ws-channel-handler.ts +26 -40
  131. package/src/common/buffers/buffers.ts +1 -1
  132. package/src/common/capturer.ts +36 -0
  133. package/src/common/connection/drivers/frame-decoder.ts +11 -11
  134. package/src/common/connection/drivers/index.ts +0 -1
  135. package/src/common/connection/drivers/message-port.ts +1 -4
  136. package/src/common/connection/drivers/node-message-port.ts +2 -2
  137. package/src/common/connection/drivers/reconnecting-websocket.ts +3 -2
  138. package/src/common/connection/drivers/socket.ts +4 -42
  139. package/src/common/connection/drivers/stream.ts +76 -0
  140. package/src/common/connection/drivers/ws-websocket.ts +2 -2
  141. package/src/common/fury-extends/any.ts +122 -102
  142. package/src/common/fury-extends/one-of.ts +79 -31
  143. package/src/common/fury-extends/shared.ts +3 -0
  144. package/src/common/index.ts +2 -2
  145. package/src/common/message.ts +1 -1
  146. package/src/common/rpc/connection.ts +228 -166
  147. package/src/common/rpc/index.ts +1 -1
  148. package/src/common/rpc/message-io.ts +223 -0
  149. package/src/common/rpc/multiplexer.ts +3 -0
  150. package/src/common/rpc/types.ts +30 -5
  151. package/src/common/rpc-service/center.ts +37 -31
  152. package/src/common/rpc-service/proxy/base.ts +59 -12
  153. package/src/common/rpc-service/proxy/index.ts +1 -3
  154. package/src/common/rpc-service/proxy/{legacy.ts → json.ts} +47 -57
  155. package/src/common/rpc-service/proxy/sumi.ts +23 -35
  156. package/src/common/rpc-service/registry.ts +125 -0
  157. package/src/common/rpc-service/stub.ts +6 -6
  158. package/src/common/{ext-rpc-protocol.ts → rpcProtocol.ts} +2 -2
  159. package/src/common/server-handler.ts +183 -0
  160. package/src/common/types.ts +13 -0
  161. package/src/common/ws-channel.ts +21 -23
  162. package/src/electron/channel-handler.ts +26 -0
  163. package/src/electron/index.ts +1 -0
  164. package/src/node/common-channel-handler.ts +10 -165
  165. package/lib/common/connection/drivers/utils.d.ts +0 -12
  166. package/lib/common/connection/drivers/utils.d.ts.map +0 -1
  167. package/lib/common/connection/drivers/utils.js +0 -49
  168. package/lib/common/connection/drivers/utils.js.map +0 -1
  169. package/lib/common/ext-rpc-protocol.d.ts.map +0 -1
  170. package/lib/common/ext-rpc-protocol.js.map +0 -1
  171. package/lib/common/rpc/packet.d.ts +0 -65
  172. package/lib/common/rpc/packet.d.ts.map +0 -1
  173. package/lib/common/rpc/packet.js +0 -82
  174. package/lib/common/rpc/packet.js.map +0 -1
  175. package/lib/common/rpc/protocol-repository.d.ts +0 -32
  176. package/lib/common/rpc/protocol-repository.d.ts.map +0 -1
  177. package/lib/common/rpc/protocol-repository.js +0 -118
  178. package/lib/common/rpc/protocol-repository.js.map +0 -1
  179. package/lib/common/rpc/utils.d.ts +0 -2
  180. package/lib/common/rpc/utils.d.ts.map +0 -1
  181. package/lib/common/rpc/utils.js +0 -10
  182. package/lib/common/rpc/utils.js.map +0 -1
  183. package/lib/common/rpc-service/proxy/invoker.d.ts +0 -14
  184. package/lib/common/rpc-service/proxy/invoker.d.ts.map +0 -1
  185. package/lib/common/rpc-service/proxy/invoker.js +0 -34
  186. package/lib/common/rpc-service/proxy/invoker.js.map +0 -1
  187. package/lib/common/rpc-service/proxy/legacy.d.ts.map +0 -1
  188. package/lib/common/rpc-service/proxy/legacy.js.map +0 -1
  189. package/lib/common/rpc-service/proxy/registry.d.ts.map +0 -1
  190. package/lib/common/rpc-service/proxy/registry.js +0 -46
  191. package/lib/common/rpc-service/proxy/registry.js.map +0 -1
  192. package/lib/common/utils.d.ts.map +0 -1
  193. package/lib/common/utils.js +0 -57
  194. package/lib/common/utils.js.map +0 -1
  195. package/src/common/connection/drivers/utils.ts +0 -52
  196. package/src/common/rpc/packet.ts +0 -104
  197. package/src/common/rpc/protocol-repository.ts +0 -180
  198. package/src/common/rpc/utils.ts +0 -5
  199. package/src/common/rpc-service/proxy/invoker.ts +0 -45
  200. package/src/common/rpc-service/proxy/registry.ts +0 -56
  201. package/src/common/utils.ts +0 -80
@@ -1,14 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,34 +0,0 @@
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
@@ -1 +0,0 @@
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 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"legacy.js","sourceRoot":"","sources":["../../../../src/common/rpc-service/proxy/legacy.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
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"}
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ServiceRegistry = void 0;
4
- const ide_core_common_1 = require("@opensumi/ide-core-common");
5
- const utils_1 = require("../../utils");
6
- /**
7
- * Store all executable services
8
- */
9
- class ServiceRegistry {
10
- constructor() {
11
- this.emitter = new ide_core_common_1.Emitter();
12
- this.serviceMethodMap = new Map();
13
- this.onServicesUpdate = this.emitter.event;
14
- }
15
- register(name, methodFn) {
16
- this.serviceMethodMap.set(name, methodFn);
17
- this.emitter.fire([name]);
18
- }
19
- registerService(service, options) {
20
- const serviceNames = [];
21
- const { nameConverter } = options || {};
22
- const methods = (0, utils_1.getServiceMethods)(service);
23
- for (const method of methods) {
24
- let methodName = method;
25
- if (nameConverter) {
26
- methodName = nameConverter(method);
27
- }
28
- this.serviceMethodMap.set(methodName, service[method].bind(service));
29
- serviceNames.push(methodName);
30
- }
31
- this.emitter.fire(serviceNames);
32
- }
33
- has(name) {
34
- return this.serviceMethodMap.has(name);
35
- }
36
- invoke(name, ...args) {
37
- // here because we have checked the existence of the method
38
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
39
- return this.serviceMethodMap.get(name)(...args);
40
- }
41
- methods() {
42
- return Array.from(this.serviceMethodMap.keys());
43
- }
44
- }
45
- exports.ServiceRegistry = ServiceRegistry;
46
- //# sourceMappingURL=registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/common/rpc-service/proxy/registry.ts"],"names":[],"mappings":";;;AAAA,+DAAoD;AAGpD,uCAAgD;AAEhD;;GAEG;AACH,MAAa,eAAe;IAA5B;QACY,YAAO,GAAG,IAAI,yBAAO,EAAY,CAAC;QAEpC,qBAAgB,GAAG,IAAI,GAAG,EAAiC,CAAC;QAEpE,qBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IA0CxC,CAAC;IAxCC,QAAQ,CAAC,IAAY,EAAE,QAA0B;QAC/C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,eAAe,CACb,OAAY,EACZ,OAEC;QAED,MAAM,YAAY,GAAG,EAAc,CAAC;QACpC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,IAAA,yBAAiB,EAAC,OAAO,CAAC,CAAC;QAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,IAAI,UAAU,GAAG,MAAM,CAAC;YACxB,IAAI,aAAa,EAAE;gBACjB,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;aACpC;YAED,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACrE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC/B;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAED,GAAG,CAAC,IAAiB;QACnB,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,IAAiB,EAAE,GAAG,IAAW;QACtC,2DAA2D;QAC3D,oEAAoE;QACpE,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;CACF;AA/CD,0CA+CC"}
@@ -1 +0,0 @@
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"}
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMethodName = exports.getRequestName = exports.getNotificationName = exports.getServiceMethods = exports.getCapturer = exports.ResponseStatus = exports.MessageType = void 0;
4
- var MessageType;
5
- (function (MessageType) {
6
- MessageType["SendNotification"] = "sendNotification";
7
- MessageType["SendRequest"] = "sendRequest";
8
- MessageType["RequestResult"] = "requestResult";
9
- MessageType["OnNotification"] = "onNotification";
10
- MessageType["OnRequest"] = "onRequest";
11
- MessageType["OnRequestResult"] = "onRequestResult";
12
- })(MessageType = exports.MessageType || (exports.MessageType = {}));
13
- var ResponseStatus;
14
- (function (ResponseStatus) {
15
- ResponseStatus["Success"] = "success";
16
- ResponseStatus["Fail"] = "fail";
17
- })(ResponseStatus = exports.ResponseStatus || (exports.ResponseStatus = {}));
18
- function getCapturer() {
19
- var _a;
20
- if (typeof window !== 'undefined' && ((_a = window.__OPENSUMI_DEVTOOLS_GLOBAL_HOOK__) === null || _a === void 0 ? void 0 : _a.captureRPC)) {
21
- return window.__OPENSUMI_DEVTOOLS_GLOBAL_HOOK__.captureRPC;
22
- }
23
- return;
24
- }
25
- exports.getCapturer = getCapturer;
26
- function getServiceMethods(service) {
27
- let props = [];
28
- if (/^\s*class/.test(service.constructor.toString())) {
29
- let obj = service;
30
- do {
31
- props = props.concat(Object.getOwnPropertyNames(obj));
32
- } while ((obj = Object.getPrototypeOf(obj)));
33
- props = props.sort().filter((e, i, arr) => e !== arr[i + 1] && typeof service[e] === 'function');
34
- }
35
- else {
36
- for (const prop in service) {
37
- if (service[prop] && typeof service[prop] === 'function') {
38
- props.push(prop);
39
- }
40
- }
41
- }
42
- return props;
43
- }
44
- exports.getServiceMethods = getServiceMethods;
45
- function getNotificationName(serviceName, name) {
46
- return `on:${serviceName}:${name}`;
47
- }
48
- exports.getNotificationName = getNotificationName;
49
- function getRequestName(serviceName, name) {
50
- return `${serviceName}:${name}`;
51
- }
52
- exports.getRequestName = getRequestName;
53
- function getMethodName(serviceName, name) {
54
- return name.startsWith('on') ? getNotificationName(serviceName, name) : getRequestName(serviceName, name);
55
- }
56
- exports.getMethodName = getMethodName;
57
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":";;;AAMA,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,oDAAqC,CAAA;IACrC,0CAA2B,CAAA;IAC3B,8CAA+B,CAAA;IAC/B,gDAAiC,CAAA;IACjC,sCAAuB,CAAA;IACvB,kDAAmC,CAAA;AACrC,CAAC,EAPW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAOtB;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,+BAAa,CAAA;AACf,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB;AAyBD,SAAgB,WAAW;;IACzB,IAAI,OAAO,MAAM,KAAK,WAAW,KAAI,MAAA,MAAM,CAAC,iCAAiC,0CAAE,UAAU,CAAA,EAAE;QACzF,OAAO,MAAM,CAAC,iCAAiC,CAAC,UAAU,CAAC;KAC5D;IACD,OAAO;AACT,CAAC;AALD,kCAKC;AAED,SAAgB,iBAAiB,CAAC,OAAY;IAC5C,IAAI,KAAK,GAAU,EAAE,CAAC;IAEtB,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,EAAE;QACpD,IAAI,GAAG,GAAG,OAAO,CAAC;QAClB,GAAG;YACD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;SACvD,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE;QAC7C,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC;KAClG;SAAM;QACL,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;YAC1B,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE;gBACxD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClB;SACF;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAlBD,8CAkBC;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,52 +0,0 @@
1
- import { Emitter } from '@opensumi/ide-core-common';
2
-
3
- import { IConnectionShape } from '../types';
4
-
5
- export class EventQueue<T> {
6
- emitter = new Emitter<T>();
7
-
8
- queue: T[] = [];
9
-
10
- isOpened = false;
11
- open() {
12
- this.isOpened = true;
13
- this.queue.forEach((data) => {
14
- this.emitter.fire(data);
15
- });
16
- this.queue = [];
17
- }
18
-
19
- push(data: T) {
20
- if (this.isOpened) {
21
- this.emitter.fire(data);
22
- } else {
23
- this.queue.push(data);
24
- }
25
- }
26
-
27
- on(cb: (data: T) => void) {
28
- const disposable = this.emitter.event(cb);
29
-
30
- if (!this.isOpened) {
31
- this.open();
32
- }
33
-
34
- return disposable;
35
- }
36
- }
37
-
38
- export const createQueue = <T>(socket: IConnectionShape<T>): IConnectionShape<T> => {
39
- const queue = new EventQueue<T>();
40
-
41
- socket.onMessage((data) => {
42
- queue.push(data);
43
- });
44
-
45
- return {
46
- send: (data) => {
47
- socket.send(data);
48
- },
49
- onMessage: (cb) => queue.on(cb),
50
- onceClose: (cb) => socket.onceClose(cb),
51
- };
52
- };
@@ -1,104 +0,0 @@
1
- import { Serializer, Type } from '@furyjs/fury';
2
- import { generateSerializer } from '@furyjs/fury/dist/lib/gen';
3
-
4
- import { stringifyError } from '@opensumi/ide-core-common/lib/utils';
5
-
6
- import { furyFactory } from '../fury-extends/shared';
7
-
8
- const ProtoVersionV1 = 1;
9
-
10
- export enum OperationType {
11
- Request,
12
- Notification,
13
- Response,
14
- Heartbeat,
15
- Cancel,
16
- }
17
-
18
- export enum BodyCodec {
19
- /**
20
- * Means no body
21
- */
22
- None,
23
- Text,
24
- Binary,
25
- JSON,
26
- }
27
-
28
- export enum ErrorCode {
29
- OK,
30
- Err,
31
- }
32
-
33
- const { fury, reader, writer } = furyFactory();
34
- export { reader };
35
-
36
- const requestHeadersProto = Type.object('headers', {
37
- cancelable: Type.bool(),
38
- });
39
-
40
- export interface IRequestHeaders {
41
- /**
42
- * If set to true, the request can be canceled.
43
- *
44
- * the server will push a `CancellationToken` to the request arguments.
45
- */
46
- cancelable?: boolean;
47
- }
48
-
49
- export const requestHeadersSerializer = generateSerializer(fury, requestHeadersProto) as Serializer;
50
-
51
- export class MessageIO {
52
- static Request(requestId: number, rpcType: number, method: string, headers: IRequestHeaders, payload: Uint8Array) {
53
- writer.reset();
54
-
55
- writer.uint8(ProtoVersionV1);
56
- writer.uint8(rpcType);
57
- writer.uint32(requestId);
58
- writer.uint8(BodyCodec.Binary);
59
- writer.stringOfVarUInt32(method);
60
- requestHeadersSerializer.write(headers);
61
- writer.varUInt32(payload.length);
62
- writer.buffer(payload);
63
-
64
- return writer.dump();
65
- }
66
-
67
- static Cancel(requestId: number) {
68
- writer.reset();
69
-
70
- writer.uint8(ProtoVersionV1);
71
- writer.uint8(OperationType.Cancel);
72
- writer.uint32(requestId);
73
- writer.uint8(BodyCodec.None);
74
-
75
- return writer.dump();
76
- }
77
-
78
- static Response(requestId: number, headers: Record<string, any>, payload: Uint8Array) {
79
- writer.reset();
80
-
81
- writer.uint8(ProtoVersionV1);
82
- writer.uint8(OperationType.Response);
83
- writer.uint32(requestId);
84
- writer.uint8(BodyCodec.Binary);
85
- writer.uint16(ErrorCode.OK);
86
- writer.varUInt32(payload.length);
87
- writer.buffer(payload);
88
-
89
- return writer.dump();
90
- }
91
-
92
- static Error(requestId: number, status: number, headers: Record<string, any>, error: any) {
93
- writer.reset();
94
-
95
- writer.uint8(ProtoVersionV1);
96
- writer.uint8(OperationType.Response);
97
- writer.uint32(requestId);
98
- writer.uint8(BodyCodec.JSON);
99
- writer.uint16(status);
100
- writer.stringOfVarUInt32(stringifyError(error));
101
-
102
- return writer.dump();
103
- }
104
- }
@@ -1,180 +0,0 @@
1
- import Fury, { Type, TypeDescription } from '@furyjs/fury';
2
-
3
- import { anySerializer } from '../fury-extends/any';
4
-
5
- import { TSumiProtocol, TSumiProtocolMethod } from './types';
6
-
7
- export type TRequestTransferable = ITransferable[];
8
-
9
- export interface ITransferable {
10
- /**
11
- * transfer raw value
12
- */
13
- r: any;
14
-
15
- /**
16
- * value that cannot be transferred, use string instead
17
- */
18
- $?: string;
19
- }
20
-
21
- type TSerializer = ReturnType<Fury['registerSerializer']>;
22
-
23
- interface IProtocolProcessor {
24
- serializeRequest(args: any[]): Uint8Array;
25
- deserializeRequest(buffer: Uint8Array): any[];
26
- serializeResult<T = any>(result: T): Uint8Array;
27
- deserializeResult<T = any>(buffer: Uint8Array): T;
28
- }
29
-
30
- const createTransferable = (name: string, type?: TypeDescription) => {
31
- const props = {
32
- $: Type.string(),
33
- } as Record<string, TypeDescription>;
34
- if (type) {
35
- props.r = type;
36
- }
37
- return Type.object(name, props);
38
- };
39
-
40
- class SumiProtocolProcessor implements IProtocolProcessor {
41
- request: TSerializer;
42
- result: TSerializer;
43
- requestArgsLength: number;
44
-
45
- constructor(methodProtocol: TSumiProtocolMethod, public fury: Fury) {
46
- const methodName = methodProtocol.method;
47
-
48
- const argsTuple = [] as TypeDescription[];
49
-
50
- for (const element of methodProtocol.request) {
51
- argsTuple.push(createTransferable(methodName + '^' + element.name, element.type));
52
- }
53
-
54
- const requestProto = Type.tuple(argsTuple);
55
- const resultProto = createTransferable(methodName + 'v', methodProtocol.response.type);
56
-
57
- this.requestArgsLength = argsTuple.length;
58
-
59
- this.request = this.fury.registerSerializer(requestProto);
60
- this.result = this.fury.registerSerializer(resultProto);
61
- }
62
-
63
- serializeRequest(args: any[]): Uint8Array {
64
- const newArray: TRequestTransferable = new Array(args.length);
65
- for (let i = 0; i < args.length; i++) {
66
- newArray[i] = ObjectTransfer.replacer(args[i]);
67
- }
68
-
69
- return this.request.serialize(newArray);
70
- }
71
-
72
- deserializeRequest(buffer: Uint8Array): any[] {
73
- const result = new Array(this.requestArgsLength);
74
- const argsArray = this.request.deserialize(buffer) as TRequestTransferable;
75
- for (let i = 0; i < this.requestArgsLength; i++) {
76
- result[i] = ObjectTransfer.reviver(argsArray[i]);
77
- }
78
- return result;
79
- }
80
-
81
- serializeResult<T = any>(result: T): Uint8Array {
82
- return this.result.serialize(ObjectTransfer.replacer(result));
83
- }
84
-
85
- deserializeResult<T = any>(buffer: Uint8Array): T {
86
- const payload = this.result.deserialize(buffer) as ITransferable;
87
- return ObjectTransfer.reviver(payload);
88
- }
89
- }
90
-
91
- class AnyProtocolProcessor implements IProtocolProcessor {
92
- serializeRequest(args: any[]): Uint8Array {
93
- return anySerializer.serialize(args);
94
- }
95
-
96
- deserializeRequest(buffer: Uint8Array): any[] {
97
- return anySerializer.deserialize(buffer);
98
- }
99
-
100
- serializeResult<T = any>(result: T): Uint8Array {
101
- return anySerializer.serialize(result);
102
- }
103
-
104
- deserializeResult<T = any>(buffer: Uint8Array): T {
105
- return anySerializer.deserialize(buffer);
106
- }
107
- }
108
-
109
- export class ProtocolRepository {
110
- fury = new Fury();
111
-
112
- private processorMap = new Map<string, SumiProtocolProcessor>();
113
-
114
- private anyProcessor = new AnyProtocolProcessor();
115
-
116
- has(name: string) {
117
- return this.processorMap.has(name);
118
- }
119
-
120
- loadProtocol(
121
- protocol: TSumiProtocol,
122
- options?: {
123
- nameConverter?: (str: string) => string;
124
- },
125
- ) {
126
- const { methods } = protocol;
127
-
128
- for (const proto of methods) {
129
- let method = proto.method;
130
- if (options?.nameConverter) {
131
- method = options.nameConverter(method);
132
- }
133
-
134
- const copy = {
135
- ...proto,
136
- method,
137
- };
138
-
139
- this.loadProtocolMethod(copy);
140
- }
141
- }
142
-
143
- loadProtocolMethod(methodProtocol: TSumiProtocolMethod) {
144
- this.processorMap.set(methodProtocol.method, new SumiProtocolProcessor(methodProtocol, this.fury));
145
- }
146
-
147
- getProcessor(method: string): IProtocolProcessor {
148
- const processor = this.processorMap.get(method);
149
- if (processor) {
150
- return processor;
151
- }
152
- return this.anyProcessor;
153
- }
154
- }
155
-
156
- class ObjectTransfer {
157
- static TypeUndefined = '$undefined';
158
-
159
- static replacer(value: any) {
160
- const payload = {} as ITransferable;
161
-
162
- if (typeof value === 'undefined') {
163
- payload.$ = ObjectTransfer.TypeUndefined;
164
- }
165
-
166
- if (!payload.$) {
167
- payload.r = value;
168
- }
169
-
170
- return payload;
171
- }
172
-
173
- static reviver(transferable: ITransferable): any {
174
- if (transferable.$ === ObjectTransfer.TypeUndefined) {
175
- return undefined;
176
- }
177
-
178
- return transferable.r;
179
- }
180
- }
@@ -1,5 +0,0 @@
1
- export const assert = (condition: any, message: string) => {
2
- if (!condition) {
3
- throw new Error(message);
4
- }
5
- };
@@ -1,45 +0,0 @@
1
- import { ProxyLegacy } from './legacy';
2
- import { ProxySumi } from './sumi';
3
-
4
- const defaultReservedWordSet = new Set(['then', 'finally']);
5
-
6
- export class Invoker {
7
- legacyProxy: ProxyLegacy;
8
- sumiProxy: ProxySumi;
9
-
10
- private legacyInvokeProxy: any;
11
- private sumiInvokeProxy: any;
12
-
13
- constructor() {}
14
-
15
- attachLegacy(legacyProxy: ProxyLegacy) {
16
- this.legacyProxy = legacyProxy;
17
- this.legacyInvokeProxy = this.legacyProxy.getInvokeProxy();
18
- }
19
-
20
- attachSumi(sumiProxy: ProxySumi) {
21
- this.sumiProxy = sumiProxy;
22
- this.sumiInvokeProxy = this.sumiProxy.getInvokeProxy();
23
- }
24
-
25
- invoke(name: string, ...args: any[]) {
26
- if (defaultReservedWordSet.has(name)) {
27
- return Promise.resolve();
28
- }
29
-
30
- if (this.sumiInvokeProxy) {
31
- return this.sumiInvokeProxy[name](...args);
32
- }
33
-
34
- return this.legacyInvokeProxy[name](...args);
35
- }
36
-
37
- dispose() {
38
- if (this.legacyProxy) {
39
- this.legacyProxy.dispose();
40
- }
41
- if (this.sumiProxy) {
42
- this.sumiProxy.dispose();
43
- }
44
- }
45
- }
@@ -1,56 +0,0 @@
1
- import { Emitter } from '@opensumi/ide-core-common';
2
-
3
- import { RPCServiceMethod } from '../../types';
4
- import { getServiceMethods } from '../../utils';
5
-
6
- /**
7
- * Store all executable services
8
- */
9
- export class ServiceRegistry {
10
- protected emitter = new Emitter<string[]>();
11
-
12
- private serviceMethodMap = new Map<PropertyKey, RPCServiceMethod>();
13
-
14
- onServicesUpdate = this.emitter.event;
15
-
16
- register(name: string, methodFn: RPCServiceMethod) {
17
- this.serviceMethodMap.set(name, methodFn);
18
- this.emitter.fire([name]);
19
- }
20
-
21
- registerService(
22
- service: any,
23
- options?: {
24
- nameConverter?: (str: string) => string;
25
- },
26
- ) {
27
- const serviceNames = [] as string[];
28
- const { nameConverter } = options || {};
29
- const methods = getServiceMethods(service);
30
- for (const method of methods) {
31
- let methodName = method;
32
- if (nameConverter) {
33
- methodName = nameConverter(method);
34
- }
35
-
36
- this.serviceMethodMap.set(methodName, service[method].bind(service));
37
- serviceNames.push(methodName);
38
- }
39
-
40
- this.emitter.fire(serviceNames);
41
- }
42
-
43
- has(name: PropertyKey) {
44
- return this.serviceMethodMap.has(name);
45
- }
46
-
47
- invoke(name: PropertyKey, ...args: any[]): any {
48
- // here because we have checked the existence of the method
49
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
50
- return this.serviceMethodMap.get(name)!(...args);
51
- }
52
-
53
- methods() {
54
- return Array.from(this.serviceMethodMap.keys());
55
- }
56
- }