@eclipse-glsp/server 1.1.0-next.dc6b980.47 → 1.1.0-next.f692ea4.55

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 (219) hide show
  1. package/lib/browser/di/app-module.d.ts +2 -7
  2. package/lib/browser/di/app-module.d.ts.map +1 -1
  3. package/lib/browser/di/app-module.js +5 -30
  4. package/lib/browser/di/app-module.js.map +1 -1
  5. package/lib/browser/index.d.ts +0 -1
  6. package/lib/browser/index.d.ts.map +1 -1
  7. package/lib/browser/index.js +0 -1
  8. package/lib/browser/index.js.map +1 -1
  9. package/lib/browser/launch/worker-server-launcher.d.ts +4 -4
  10. package/lib/browser/launch/worker-server-launcher.d.ts.map +1 -1
  11. package/lib/browser/launch/worker-server-launcher.js +5 -11
  12. package/lib/browser/launch/worker-server-launcher.js.map +1 -1
  13. package/lib/common/actions/client-action-handler.d.ts +1 -2
  14. package/lib/common/actions/client-action-handler.d.ts.map +1 -1
  15. package/lib/common/actions/client-action-handler.js +17 -2
  16. package/lib/common/actions/client-action-handler.js.map +1 -1
  17. package/lib/common/command/command-stack.d.ts +16 -1
  18. package/lib/common/command/command-stack.d.ts.map +1 -1
  19. package/lib/common/command/command-stack.js +0 -15
  20. package/lib/common/command/command-stack.js.map +1 -1
  21. package/lib/common/di/client-session-module.d.ts +1 -1
  22. package/lib/common/di/client-session-module.d.ts.map +1 -1
  23. package/lib/common/di/client-session-module.js +2 -2
  24. package/lib/common/di/client-session-module.js.map +1 -1
  25. package/lib/common/di/glsp-module.d.ts +3 -1
  26. package/lib/common/di/glsp-module.d.ts.map +1 -1
  27. package/lib/common/di/glsp-module.js +0 -15
  28. package/lib/common/di/glsp-module.js.map +1 -1
  29. package/lib/common/di/multi-binding.d.ts +19 -4
  30. package/lib/common/di/multi-binding.d.ts.map +1 -1
  31. package/lib/common/di/multi-binding.js.map +1 -1
  32. package/lib/common/di/server-module.d.ts +1 -6
  33. package/lib/common/di/server-module.d.ts.map +1 -1
  34. package/lib/common/di/server-module.js +21 -17
  35. package/lib/common/di/server-module.js.map +1 -1
  36. package/lib/common/index.d.ts +1 -2
  37. package/lib/common/index.d.ts.map +1 -1
  38. package/lib/common/index.js +1 -2
  39. package/lib/common/index.js.map +1 -1
  40. package/lib/common/launch/glsp-server-launcher.d.ts +1 -1
  41. package/lib/common/launch/glsp-server-launcher.d.ts.map +1 -1
  42. package/lib/common/launch/glsp-server-launcher.js +2 -2
  43. package/lib/common/launch/glsp-server-launcher.js.map +1 -1
  44. package/lib/common/launch/jsonrpc-server-launcher.d.ts +38 -0
  45. package/lib/common/launch/jsonrpc-server-launcher.d.ts.map +1 -0
  46. package/lib/common/launch/jsonrpc-server-launcher.js +84 -0
  47. package/lib/common/launch/jsonrpc-server-launcher.js.map +1 -0
  48. package/lib/common/protocol/glsp-server.d.ts +4 -104
  49. package/lib/common/protocol/glsp-server.d.ts.map +1 -1
  50. package/lib/common/protocol/glsp-server.js +13 -20
  51. package/lib/common/protocol/glsp-server.js.map +1 -1
  52. package/lib/common/session/client-session-factory.d.ts +1 -2
  53. package/lib/common/session/client-session-factory.d.ts.map +1 -1
  54. package/lib/common/session/client-session-factory.js +17 -2
  55. package/lib/common/session/client-session-factory.js.map +1 -1
  56. package/lib/common/session/client-session-manager.d.ts +1 -3
  57. package/lib/common/session/client-session-manager.d.ts.map +1 -1
  58. package/lib/common/session/client-session-manager.js.map +1 -1
  59. package/lib/{browser/di → common/utils}/console-logger.d.ts +7 -1
  60. package/lib/common/utils/console-logger.d.ts.map +1 -0
  61. package/lib/{browser/di → common/utils}/console-logger.js +26 -8
  62. package/lib/common/utils/console-logger.js.map +1 -0
  63. package/lib/common/utils/logger.d.ts +21 -0
  64. package/lib/common/utils/logger.d.ts.map +1 -1
  65. package/lib/common/utils/logger.js +12 -1
  66. package/lib/common/utils/logger.js.map +1 -1
  67. package/lib/node/di/app-module.d.ts +2 -2
  68. package/lib/node/di/app-module.d.ts.map +1 -1
  69. package/lib/node/di/app-module.js +10 -35
  70. package/lib/node/di/app-module.js.map +1 -1
  71. package/lib/node/launch/cli-parser.d.ts +2 -3
  72. package/lib/node/launch/cli-parser.d.ts.map +1 -1
  73. package/lib/node/launch/cli-parser.js.map +1 -1
  74. package/lib/node/launch/socket-server-launcher.d.ts +2 -23
  75. package/lib/node/launch/socket-server-launcher.d.ts.map +1 -1
  76. package/lib/node/launch/socket-server-launcher.js +8 -28
  77. package/lib/node/launch/socket-server-launcher.js.map +1 -1
  78. package/lib/node/launch/websocket-server-launcher.d.ts +2 -8
  79. package/lib/node/launch/websocket-server-launcher.d.ts.map +1 -1
  80. package/lib/node/launch/websocket-server-launcher.js +4 -28
  81. package/lib/node/launch/websocket-server-launcher.js.map +1 -1
  82. package/package.json +3 -3
  83. package/src/browser/di/app-module.ts +4 -32
  84. package/src/browser/index.ts +0 -1
  85. package/src/browser/launch/worker-server-launcher.ts +7 -13
  86. package/src/common/actions/client-action-handler.ts +1 -2
  87. package/src/common/command/command-stack.ts +1 -1
  88. package/src/common/di/client-session-module.ts +1 -1
  89. package/src/common/di/glsp-module.ts +3 -1
  90. package/src/common/di/multi-binding.ts +4 -5
  91. package/src/common/di/server-module.ts +6 -21
  92. package/src/common/index.ts +1 -2
  93. package/src/common/launch/glsp-server-launcher.ts +2 -2
  94. package/src/common/launch/jsonrpc-server-launcher.ts +95 -0
  95. package/src/common/protocol/glsp-server.spec.ts +7 -4
  96. package/src/common/protocol/glsp-server.ts +17 -132
  97. package/src/common/session/client-session-factory.spec.ts +1 -1
  98. package/src/common/session/client-session-factory.ts +1 -2
  99. package/src/common/session/client-session-manager.ts +1 -3
  100. package/src/common/test/mock-util.ts +5 -5
  101. package/src/{browser/di → common/utils}/console-logger.ts +19 -1
  102. package/src/common/utils/logger.ts +16 -1
  103. package/src/node/di/app-module.ts +4 -13
  104. package/src/node/launch/cli-parser.ts +2 -3
  105. package/src/node/launch/socket-server-launcher.spec.ts +6 -0
  106. package/src/node/launch/socket-server-launcher.ts +8 -30
  107. package/src/node/launch/websocket-server-launcher.ts +5 -31
  108. package/lib/browser/di/console-logger.d.ts.map +0 -1
  109. package/lib/browser/di/console-logger.js.map +0 -1
  110. package/lib/common/actions/action-dispatcher.spec.d.ts +0 -2
  111. package/lib/common/actions/action-dispatcher.spec.d.ts.map +0 -1
  112. package/lib/common/actions/action-dispatcher.spec.js +0 -264
  113. package/lib/common/actions/action-dispatcher.spec.js.map +0 -1
  114. package/lib/common/actions/action-handler-registry.spec.d.ts +0 -2
  115. package/lib/common/actions/action-handler-registry.spec.d.ts.map +0 -1
  116. package/lib/common/actions/action-handler-registry.spec.js +0 -50
  117. package/lib/common/actions/action-handler-registry.spec.js.map +0 -1
  118. package/lib/common/actions/global-action-provider.spec.d.ts +0 -2
  119. package/lib/common/actions/global-action-provider.spec.d.ts.map +0 -1
  120. package/lib/common/actions/global-action-provider.spec.js +0 -70
  121. package/lib/common/actions/global-action-provider.spec.js.map +0 -1
  122. package/lib/common/command/command-stack.spec.d.ts +0 -2
  123. package/lib/common/command/command-stack.spec.d.ts.map +0 -1
  124. package/lib/common/command/command-stack.spec.js +0 -207
  125. package/lib/common/command/command-stack.spec.js.map +0 -1
  126. package/lib/common/command/command.spec.d.ts +0 -2
  127. package/lib/common/command/command.spec.d.ts.map +0 -1
  128. package/lib/common/command/command.spec.js +0 -86
  129. package/lib/common/command/command.spec.js.map +0 -1
  130. package/lib/common/command/recording-command.spec.d.ts +0 -17
  131. package/lib/common/command/recording-command.spec.d.ts.map +0 -1
  132. package/lib/common/command/recording-command.spec.js +0 -62
  133. package/lib/common/command/recording-command.spec.js.map +0 -1
  134. package/lib/common/di/binding-target.spec.d.ts +0 -2
  135. package/lib/common/di/binding-target.spec.d.ts.map +0 -1
  136. package/lib/common/di/binding-target.spec.js +0 -121
  137. package/lib/common/di/binding-target.spec.js.map +0 -1
  138. package/lib/common/di/multi-bindings.spec.d.ts +0 -2
  139. package/lib/common/di/multi-bindings.spec.d.ts.map +0 -1
  140. package/lib/common/di/multi-bindings.spec.js +0 -137
  141. package/lib/common/di/multi-bindings.spec.js.map +0 -1
  142. package/lib/common/diagram/request-type-hints-action-handler.spec.d.ts +0 -2
  143. package/lib/common/diagram/request-type-hints-action-handler.spec.d.ts.map +0 -1
  144. package/lib/common/diagram/request-type-hints-action-handler.spec.js +0 -57
  145. package/lib/common/diagram/request-type-hints-action-handler.spec.js.map +0 -1
  146. package/lib/common/features/contextactions/context-actions-provider-registry.spec.d.ts +0 -2
  147. package/lib/common/features/contextactions/context-actions-provider-registry.spec.d.ts.map +0 -1
  148. package/lib/common/features/contextactions/context-actions-provider-registry.spec.js +0 -34
  149. package/lib/common/features/contextactions/context-actions-provider-registry.spec.js.map +0 -1
  150. package/lib/common/features/contextactions/request-context-actions-handler.spec.d.ts +0 -2
  151. package/lib/common/features/contextactions/request-context-actions-handler.spec.d.ts.map +0 -1
  152. package/lib/common/features/contextactions/request-context-actions-handler.spec.js +0 -63
  153. package/lib/common/features/contextactions/request-context-actions-handler.spec.js.map +0 -1
  154. package/lib/common/features/contextactions/tool-palette-item-provider.spec.d.ts +0 -2
  155. package/lib/common/features/contextactions/tool-palette-item-provider.spec.d.ts.map +0 -1
  156. package/lib/common/features/contextactions/tool-palette-item-provider.spec.js +0 -48
  157. package/lib/common/features/contextactions/tool-palette-item-provider.spec.js.map +0 -1
  158. package/lib/common/features/directediting/context-edit-validator-registry.spec.d.ts +0 -2
  159. package/lib/common/features/directediting/context-edit-validator-registry.spec.d.ts.map +0 -1
  160. package/lib/common/features/directediting/context-edit-validator-registry.spec.js +0 -44
  161. package/lib/common/features/directediting/context-edit-validator-registry.spec.js.map +0 -1
  162. package/lib/common/features/directediting/request-edit-validation-handler.spec.d.ts +0 -2
  163. package/lib/common/features/directediting/request-edit-validation-handler.spec.d.ts.map +0 -1
  164. package/lib/common/features/directediting/request-edit-validation-handler.spec.js +0 -97
  165. package/lib/common/features/directediting/request-edit-validation-handler.spec.js.map +0 -1
  166. package/lib/common/features/model/gmodel-serializer.spec.d.ts +0 -2
  167. package/lib/common/features/model/gmodel-serializer.spec.d.ts.map +0 -1
  168. package/lib/common/features/model/gmodel-serializer.spec.js +0 -124
  169. package/lib/common/features/model/gmodel-serializer.spec.js.map +0 -1
  170. package/lib/common/operations/operation-handler-registry.spec.d.ts +0 -2
  171. package/lib/common/operations/operation-handler-registry.spec.d.ts.map +0 -1
  172. package/lib/common/operations/operation-handler-registry.spec.js +0 -50
  173. package/lib/common/operations/operation-handler-registry.spec.js.map +0 -1
  174. package/lib/common/protocol/glsp-client-proxy.d.ts +0 -45
  175. package/lib/common/protocol/glsp-client-proxy.d.ts.map +0 -1
  176. package/lib/common/protocol/glsp-client-proxy.js +0 -53
  177. package/lib/common/protocol/glsp-client-proxy.js.map +0 -1
  178. package/lib/common/protocol/glsp-server-listener.d.ts +0 -37
  179. package/lib/common/protocol/glsp-server-listener.d.ts.map +0 -1
  180. package/lib/common/protocol/glsp-server-listener.js +0 -5
  181. package/lib/common/protocol/glsp-server-listener.js.map +0 -1
  182. package/lib/common/protocol/glsp-server.spec.d.ts +0 -2
  183. package/lib/common/protocol/glsp-server.spec.d.ts.map +0 -1
  184. package/lib/common/protocol/glsp-server.spec.js +0 -119
  185. package/lib/common/protocol/glsp-server.spec.js.map +0 -1
  186. package/lib/common/session/client-session-factory.spec.d.ts +0 -2
  187. package/lib/common/session/client-session-factory.spec.d.ts.map +0 -1
  188. package/lib/common/session/client-session-factory.spec.js +0 -56
  189. package/lib/common/session/client-session-factory.spec.js.map +0 -1
  190. package/lib/common/session/client-session-manager.spec.d.ts +0 -2
  191. package/lib/common/session/client-session-manager.spec.d.ts.map +0 -1
  192. package/lib/common/session/client-session-manager.spec.js +0 -74
  193. package/lib/common/session/client-session-manager.spec.js.map +0 -1
  194. package/lib/common/test/mock-util.d.ts +0 -123
  195. package/lib/common/test/mock-util.d.ts.map +0 -1
  196. package/lib/common/test/mock-util.js +0 -216
  197. package/lib/common/test/mock-util.js.map +0 -1
  198. package/lib/common/utils/promise-queue.spec.d.ts +0 -2
  199. package/lib/common/utils/promise-queue.spec.d.ts.map +0 -1
  200. package/lib/common/utils/promise-queue.spec.js +0 -117
  201. package/lib/common/utils/promise-queue.spec.js.map +0 -1
  202. package/lib/common/utils/registry.spec.d.ts +0 -2
  203. package/lib/common/utils/registry.spec.d.ts.map +0 -1
  204. package/lib/common/utils/registry.spec.js +0 -199
  205. package/lib/common/utils/registry.spec.js.map +0 -1
  206. package/lib/node/launch/cli-parser.spec.d.ts +0 -2
  207. package/lib/node/launch/cli-parser.spec.d.ts.map +0 -1
  208. package/lib/node/launch/cli-parser.spec.js +0 -56
  209. package/lib/node/launch/cli-parser.spec.js.map +0 -1
  210. package/lib/node/launch/socket-cli-parser.spec.d.ts +0 -2
  211. package/lib/node/launch/socket-cli-parser.spec.d.ts.map +0 -1
  212. package/lib/node/launch/socket-cli-parser.spec.js +0 -66
  213. package/lib/node/launch/socket-cli-parser.spec.js.map +0 -1
  214. package/lib/node/launch/socket-server-launcher.spec.d.ts +0 -17
  215. package/lib/node/launch/socket-server-launcher.spec.d.ts.map +0 -1
  216. package/lib/node/launch/socket-server-launcher.spec.js +0 -70
  217. package/lib/node/launch/socket-server-launcher.spec.js.map +0 -1
  218. package/src/common/protocol/glsp-client-proxy.ts +0 -65
  219. package/src/common/protocol/glsp-server-listener.ts +0 -39
@@ -13,10 +13,8 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { InitializeClientSessionParameters, remove } from '@eclipse-glsp/protocol';
16
+ import { GLSPServer, GLSPServerListener, InitializeClientSessionParameters, remove } from '@eclipse-glsp/protocol';
17
17
  import { inject, injectable } from 'inversify';
18
- import { GLSPServer } from '../protocol/glsp-server';
19
- import { GLSPServerListener } from '../protocol/glsp-server-listener';
20
18
  import { GLSPServerError } from '../utils/glsp-server-error';
21
19
  import { ClientSession } from './client-session';
22
20
  import { ClientSessionFactory } from './client-session-factory';
@@ -23,6 +23,9 @@ import {
23
23
  Args,
24
24
  CreateNodeOperation,
25
25
  EdgeTypeHint,
26
+ GLSPClientProxy,
27
+ GLSPServer,
28
+ GLSPServerListener,
26
29
  InitializeClientSessionParameters,
27
30
  MaybeArray,
28
31
  MaybePromise,
@@ -41,15 +44,12 @@ import { DiagramConfiguration, ServerLayoutKind } from '../diagram/diagram-confi
41
44
  import { ContextEditValidator } from '../features/directediting/context-edit-validator';
42
45
  import { LabelEditValidator } from '../features/directediting/label-edit-validator';
43
46
  import { GModelCreateEdgeOperationHandler, GModelCreateNodeOperationHandler } from '../gmodel/index';
44
- import { JsonRpcGLSPClientProxy } from '../protocol/glsp-client-proxy';
45
- import { GLSPServer } from '../protocol/glsp-server';
46
- import { GLSPServerListener } from '../protocol/glsp-server-listener';
47
47
  import { ClientSession } from '../session/client-session';
48
48
  import { ClientSessionFactory } from '../session/client-session-factory';
49
49
  import { ClientSessionInitializer } from '../session/client-session-initializer';
50
50
  import { ClientSessionListener } from '../session/client-session-listener';
51
51
  import { ClientSessionManager } from '../session/client-session-manager';
52
- import { Logger, LogLevel } from '../utils/logger';
52
+ import { LogLevel, Logger } from '../utils/logger';
53
53
 
54
54
  export async function delay(ms: number): Promise<void> {
55
55
  return new Promise(resolve => setTimeout(resolve, ms));
@@ -194,7 +194,7 @@ export class StubClientSessionListener implements ClientSessionListener {
194
194
  sessionDisposed(clientSession: ClientSession): void {}
195
195
  }
196
196
 
197
- export class StubGLSPClientProxy implements JsonRpcGLSPClientProxy {
197
+ export class StubGLSPClientProxy implements GLSPClientProxy {
198
198
  connect(connection: MessageConnection): void {}
199
199
 
200
200
  process(message: ActionMessage<Action>): void {}
@@ -14,9 +14,14 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
 
17
+ import { BindingContext } from '@eclipse-glsp/protocol';
17
18
  import { injectable } from 'inversify';
18
- import { Logger, LogLevel } from '../../common/index';
19
+ import { LogLevel, Logger, LoggerConfigOptions, LoggerFactory, NullLogger, getRequestParentName } from './logger';
19
20
 
21
+ /**
22
+ * Simple logger implementation that forwards logging calls to the `console` and
23
+ * can be used in both the browser and node context.
24
+ */
20
25
  @injectable()
21
26
  export class ConsoleLogger extends Logger {
22
27
  constructor(public logLevel: LogLevel = LogLevel.none, public caller?: string) {
@@ -69,3 +74,16 @@ export class ConsoleLogger extends Logger {
69
74
  return JSON.stringify(param, undefined, 4);
70
75
  }
71
76
  }
77
+
78
+ export function configureConsoleLogger<T extends LoggerConfigOptions>(context: BindingContext, options: T): void {
79
+ if (!options.consoleLog) {
80
+ context.bind(Logger).to(NullLogger).inSingletonScope();
81
+ } else {
82
+ context.bind(Logger).toDynamicValue(ctx => new ConsoleLogger(options.logLevel, getRequestParentName(ctx)));
83
+ }
84
+ context.bind(LoggerFactory).toFactory(dynamicContext => (caller: string) => {
85
+ const logger = dynamicContext.container.get(Logger);
86
+ logger.caller = caller;
87
+ return logger;
88
+ });
89
+ }
@@ -13,7 +13,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { injectable } from 'inversify';
16
+ import { injectable, interfaces } from 'inversify';
17
17
 
18
18
  @injectable()
19
19
  export abstract class Logger {
@@ -70,3 +70,18 @@ export function asLogLevel(level: string | number): LogLevel | undefined {
70
70
  }
71
71
  return undefined;
72
72
  }
73
+
74
+ export interface LoggerConfigOptions {
75
+ consoleLog?: boolean;
76
+ logLevel?: LogLevel;
77
+ }
78
+
79
+ export function getRequestParentName(context: interfaces.Context): string | undefined {
80
+ if (context.currentRequest.parentRequest) {
81
+ const bindings = context.currentRequest.parentRequest.bindings;
82
+ if (bindings.length > 0) {
83
+ return bindings[0].implementationType?.name;
84
+ }
85
+ }
86
+ return undefined;
87
+ }
@@ -13,9 +13,10 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { ContainerModule, interfaces } from 'inversify';
16
+ import { BindingContext } from '@eclipse-glsp/protocol';
17
+ import { ContainerModule } from 'inversify';
17
18
  import * as winston from 'winston';
18
- import { InjectionContainer, Logger, LoggerFactory, LogLevel, ModuleContext } from '../../common/index';
19
+ import { InjectionContainer, LogLevel, Logger, LoggerFactory, getRequestParentName } from '../../common';
19
20
  import { LaunchOptions } from '../launch/cli-parser';
20
21
  import { WinstonLogger } from './winston-logger';
21
22
 
@@ -68,7 +69,7 @@ export function createWinstonInstance<T extends LaunchOptions>(options: T): wins
68
69
  * @param baseLoggerCreator The underling global {@link winston.Logger} instance.
69
70
  */
70
71
  export function configureWinstonLogger<T extends LaunchOptions>(
71
- context: ModuleContext,
72
+ context: BindingContext,
72
73
  options: T,
73
74
  rebind = true,
74
75
  baseLoggerCreator: (launchOptions: T) => winston.Logger = createWinstonInstance
@@ -90,13 +91,3 @@ export function configureWinstonLogger<T extends LaunchOptions>(
90
91
  return logger;
91
92
  });
92
93
  }
93
-
94
- function getRequestParentName(context: interfaces.Context): string | undefined {
95
- if (context.currentRequest.parentRequest) {
96
- const bindings = context.currentRequest.parentRequest.bindings;
97
- if (bindings.length > 0) {
98
- return bindings[0].implementationType?.name;
99
- }
100
- }
101
- return undefined;
102
- }
@@ -16,13 +16,12 @@
16
16
  import * as cmd from 'commander';
17
17
  import * as fs from 'fs-extra';
18
18
  import * as path from 'path';
19
- import { asLogLevel, LogLevel } from '../../common/utils/logger';
19
+ import { LogLevel, LoggerConfigOptions, asLogLevel } from '../../common/utils/logger';
20
20
 
21
- export interface LaunchOptions {
21
+ export interface LaunchOptions extends LoggerConfigOptions {
22
22
  logLevel: LogLevel;
23
23
  logDir?: string;
24
24
  fileLog: boolean;
25
- consoleLog: boolean;
26
25
  }
27
26
 
28
27
  export interface CliParser<O extends LaunchOptions = LaunchOptions> {
@@ -14,9 +14,12 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
 
17
+ import { GLSPServer } from '@eclipse-glsp/protocol';
17
18
  import { expect } from 'chai';
18
19
  import { Container } from 'inversify';
19
20
  import * as net from 'net';
21
+ import * as sinon from 'sinon';
22
+ import { DefaultGLSPServer } from '../../common/protocol/glsp-server';
20
23
  import { createAppModule } from '../di/app-module';
21
24
  import { defaultSocketLaunchOptions } from './socket-cli-parser';
22
25
  import { SocketServerLauncher } from './socket-server-launcher';
@@ -24,7 +27,10 @@ const severPort = 5008;
24
27
  describe('test SocketServerLauncher', () => {
25
28
  it('starts and stops', async () => {
26
29
  const appContainer = new Container();
30
+ const serverStub = sinon.createStubInstance(DefaultGLSPServer);
27
31
  appContainer.load(createAppModule(defaultSocketLaunchOptions));
32
+
33
+ appContainer.bind(GLSPServer).toConstantValue(serverStub);
28
34
  const launcher = appContainer.resolve(SocketServerLauncher);
29
35
  launcher.start({ port: severPort });
30
36
  const sockStart = new net.Socket();
@@ -13,36 +13,35 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Container, inject, injectable } from 'inversify';
16
+ import { Disposable } from '@eclipse-glsp/protocol';
17
+ import { inject, injectable } from 'inversify';
17
18
  import * as net from 'net';
18
19
  import * as jsonrpc from 'vscode-jsonrpc/node';
19
- import { Disposable } from '..';
20
- import { GLSPServerLauncher } from '../../common/launch/glsp-server-launcher';
21
- import { GLSPServer, JsonRpcGLSPServer } from '../../common/protocol/glsp-server';
20
+ import { JsonRpcGLSPServerLauncher } from '../../common/launch/jsonrpc-server-launcher';
22
21
  import { Logger } from '../../common/utils/logger';
23
22
 
24
23
  export const START_UP_COMPLETE_MSG = '[GLSP-Server]:Startup completed. Accepting requests on port:';
25
24
 
26
25
  @injectable()
27
- export class SocketServerLauncher extends GLSPServerLauncher<net.TcpSocketConnectOpts> {
26
+ export class SocketServerLauncher extends JsonRpcGLSPServerLauncher<net.TcpSocketConnectOpts> {
28
27
  @inject(Logger) protected override logger: Logger;
29
28
 
30
- protected currentConnections: jsonrpc.MessageConnection[] = [];
31
- protected startupCompleteMessage = START_UP_COMPLETE_MSG;
32
29
  protected netServer: net.Server;
33
30
 
34
31
  constructor() {
35
32
  super();
36
33
  this.toDispose.push(
37
34
  Disposable.create(() => {
38
- this.currentConnections.forEach(connection => connection.dispose());
39
35
  this.netServer.close();
40
36
  })
41
37
  );
42
38
  }
43
39
 
44
40
  protected run(opts: net.TcpSocketConnectOpts): Promise<void> {
45
- this.netServer = net.createServer(socket => this.createClientConnection(socket));
41
+ this.netServer = net.createServer(socket => {
42
+ const connection = this.createConnection(socket);
43
+ this.createServerInstance(connection);
44
+ });
46
45
 
47
46
  this.netServer.listen(opts.port, opts.host);
48
47
  this.netServer.on('listening', () => {
@@ -69,27 +68,6 @@ export class SocketServerLauncher extends GLSPServerLauncher<net.TcpSocketConnec
69
68
  });
70
69
  }
71
70
 
72
- protected async createClientConnection(socket: net.Socket): Promise<void> {
73
- const container = this.createContainer();
74
- const connection = this.createConnection(socket);
75
- this.currentConnections.push(connection);
76
- const glspServer = container.get<JsonRpcGLSPServer>(JsonRpcGLSPServer);
77
- glspServer.connect(connection);
78
- this.logger.info(`Starting GLSP server connection for client: '${socket.localAddress}'`);
79
- connection.listen();
80
- connection.onDispose(() => this.disposeClientConnection(container, glspServer));
81
- socket.on('close', () => this.disposeClientConnection(container, glspServer));
82
- return new Promise((resolve, rejects) => {
83
- connection.onClose(() => resolve(undefined));
84
- connection.onError(error => rejects(error));
85
- });
86
- }
87
-
88
- protected disposeClientConnection(container: Container, glspServer: GLSPServer): void {
89
- glspServer.shutdown();
90
- container.unbindAll();
91
- }
92
-
93
71
  protected createConnection(socket: net.Socket): jsonrpc.MessageConnection {
94
72
  return jsonrpc.createMessageConnection(new jsonrpc.SocketMessageReader(socket), new jsonrpc.SocketMessageWriter(socket), console);
95
73
  }
@@ -16,14 +16,12 @@
16
16
 
17
17
  import { createWebSocketConnection, Disposable, MaybePromise, WebSocketWrapper } from '@eclipse-glsp/protocol';
18
18
  import * as http from 'http';
19
- import { Container, inject, injectable } from 'inversify';
19
+ import { inject, injectable } from 'inversify';
20
20
  import * as net from 'net';
21
21
  import * as jsonrpc from 'vscode-jsonrpc';
22
22
  import { Server, WebSocket } from 'ws';
23
- import { GLSPServerLauncher } from '../../common/launch/glsp-server-launcher';
24
- import { GLSPServer, JsonRpcGLSPServer } from '../../common/protocol/glsp-server';
23
+ import { JsonRpcGLSPServerLauncher } from '../../common/launch/jsonrpc-server-launcher';
25
24
  import { Logger } from '../../common/utils/logger';
26
- import { START_UP_COMPLETE_MSG } from './socket-server-launcher';
27
25
 
28
26
  export interface WebSocketServerOptions {
29
27
  host?: string;
@@ -46,19 +44,16 @@ export interface WebsocketConnectionData {
46
44
  const STATUS_UPGRADE_REQUIRED = 426;
47
45
 
48
46
  @injectable()
49
- export class WebSocketServerLauncher extends GLSPServerLauncher<WebSocketServerOptions> {
47
+ export class WebSocketServerLauncher extends JsonRpcGLSPServerLauncher<WebSocketServerOptions> {
50
48
  @inject(Logger)
51
49
  protected override logger: Logger;
52
50
 
53
51
  protected server: Server;
54
- protected startupCompleteMessage = START_UP_COMPLETE_MSG;
55
- protected currentConnections: jsonrpc.MessageConnection[] = [];
56
52
 
57
53
  constructor() {
58
54
  super();
59
55
  this.toDispose.push(
60
56
  Disposable.create(() => {
61
- this.currentConnections.forEach(connection => connection.dispose());
62
57
  this.server.close();
63
58
  })
64
59
  );
@@ -72,7 +67,8 @@ export class WebSocketServerLauncher extends GLSPServerLauncher<WebSocketServerO
72
67
  console.log(this.startupCompleteMessage.concat(resolvedOptions.port.toString()));
73
68
 
74
69
  this.server.on('connection', (ws, req) => {
75
- this.createClientConnection(ws);
70
+ const connection = this.createConnection(ws);
71
+ this.createServerInstance(connection);
76
72
  });
77
73
 
78
74
  return new Promise((resolve, reject) => {
@@ -81,28 +77,6 @@ export class WebSocketServerLauncher extends GLSPServerLauncher<WebSocketServerO
81
77
  });
82
78
  }
83
79
 
84
- protected async createClientConnection(socket: WebSocket): Promise<void> {
85
- const container = this.createContainer();
86
- const connection = this.createConnection(socket);
87
- this.currentConnections.push(connection);
88
- const glspServer = container.get<JsonRpcGLSPServer>(JsonRpcGLSPServer);
89
- glspServer.connect(connection);
90
- this.logger.info('Starting GLSP server connection');
91
- connection.listen();
92
- connection.onDispose(() => this.disposeClientConnection(container, glspServer));
93
- socket.on('close', () => this.disposeClientConnection(container, glspServer));
94
- connection.onClose(() => console.log('GOD dam'));
95
- return new Promise((resolve, rejects) => {
96
- connection.onClose(() => resolve(undefined));
97
- connection.onError(error => rejects(error));
98
- });
99
- }
100
-
101
- protected disposeClientConnection(container: Container, glspServer: GLSPServer): void {
102
- glspServer.shutdown();
103
- container.unbindAll();
104
- }
105
-
106
80
  protected createConnection(socket: WebSocket): jsonrpc.MessageConnection {
107
81
  return createWebSocketConnection(wrapWebSocket(socket));
108
82
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"console-logger.d.ts","sourceRoot":"","sources":["../../../src/browser/di/console-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAGlF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBACa,aAAc,SAAQ,MAAM;IAClB,QAAQ,EAAE,QAAQ;IAAyB,MAAM,CAAC;gBAAlD,QAAQ,GAAE,QAAwB,EAAS,MAAM,CAAC,oBAAQ;IAI7E,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI;IAM7C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI;IAM7C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI;IAM9C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI;IAM9C,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM;IAOrD,cAAc,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM;IAOxC,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;CAOpC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"console-logger.js","sourceRoot":"","sources":["../../../src/browser/di/console-logger.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;;;;;;;;;;AAElF,yCAAuC;AACvC,8CAAsD;AAG/C,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,cAAM;IACrC,YAAmB,WAAqB,gBAAQ,CAAC,IAAI,EAAS,MAAe;QACzE,KAAK,EAAE,CAAC;QADO,aAAQ,GAAR,QAAQ,CAA0B;QAAS,WAAM,GAAN,MAAM,CAAS;IAE7E,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,MAAa;QAClC,IAAI,gBAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YAChC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;SAClD;IACL,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,MAAa;QAClC,IAAI,gBAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YAChC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;SAClD;IACL,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,MAAa;QACnC,IAAI,gBAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;SACnD;IACL,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,MAAa;QACnC,IAAI,gBAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;SACnD;IACL,CAAC;IAED,UAAU,CAAC,OAAe,EAAE,GAAG,MAAa;QACxC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,CAAC;QAClD,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC,QAAQ,MAAM,MAAM,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;IAChF,CAAC;IAED,cAAc,CAAC,GAAG,MAAa;QAC3B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,OAAO,EAAE,CAAC;SACb;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC;IAED,SAAS,CAAC,KAAc;QACpB,IAAI,KAAK,YAAY,KAAK,EAAE;YACxB,OAAO,GAAG,KAAK,CAAC,OAAO;cACrB,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;CACJ,CAAA;AAlDY,aAAa;IADzB,IAAA,sBAAU,GAAE;;GACA,aAAa,CAkDzB;AAlDY,sCAAa"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=action-dispatcher.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"action-dispatcher.spec.d.ts","sourceRoot":"","sources":["../../../src/common/actions/action-dispatcher.spec.ts"],"names":[],"mappings":""}
@@ -1,264 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /********************************************************************************
4
- * Copyright (c) 2022-2023 STMicroelectronics and others.
5
- *
6
- * This program and the accompanying materials are made available under the
7
- * terms of the Eclipse Public License v. 2.0 which is available at
8
- * http://www.eclipse.org/legal/epl-2.0.
9
- *
10
- * This Source Code may also be made available under the following Secondary
11
- * Licenses when the conditions for such availability set forth in the Eclipse
12
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
13
- * with the GNU Classpath Exception which is available at
14
- * https://www.gnu.org/software/classpath/license.html.
15
- *
16
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
17
- ********************************************************************************/
18
- const protocol_1 = require("@eclipse-glsp/protocol");
19
- const chai_1 = require("chai");
20
- const inversify_1 = require("inversify");
21
- const sinon = require("sinon");
22
- const service_identifiers_1 = require("../di/service-identifiers");
23
- const client_session_manager_1 = require("../session/client-session-manager");
24
- const mock = require("../test/mock-util");
25
- const logger_1 = require("../utils/logger");
26
- const action_dispatcher_1 = require("./action-dispatcher");
27
- const action_handler_registry_1 = require("./action-handler-registry");
28
- const assert = require("assert");
29
- function waitSync(timeInMillis) {
30
- const start = Date.now();
31
- let now = start;
32
- while (now - start < timeInMillis) {
33
- now = Date.now();
34
- }
35
- }
36
- describe('test DefaultActionDispatcher', () => {
37
- const container = new inversify_1.Container();
38
- const clientId = 'myClientId';
39
- const actionHandlerRegistry = new action_handler_registry_1.ActionHandlerRegistry();
40
- let registry_get_stub;
41
- const sandbox = sinon.createSandbox();
42
- container.load(new inversify_1.ContainerModule(bind => {
43
- bind(logger_1.Logger).toConstantValue(new mock.StubLogger());
44
- bind(client_session_manager_1.ClientSessionManager).toConstantValue(new mock.StubClientSessionManager());
45
- bind(service_identifiers_1.ClientId).toConstantValue(clientId);
46
- bind(action_handler_registry_1.ActionHandlerRegistry).toConstantValue(actionHandlerRegistry);
47
- bind(service_identifiers_1.ClientActionKinds).toConstantValue(['response', 'response1', 'response2']);
48
- }));
49
- const actionDispatcher = container.resolve(action_dispatcher_1.DefaultActionDispatcher);
50
- beforeEach(() => {
51
- registry_get_stub = sandbox.stub(actionHandlerRegistry, 'get');
52
- });
53
- afterEach(() => {
54
- sandbox.restore();
55
- });
56
- describe('test with one-way actions (no response actions)', () => {
57
- it('dispatch- unhandled action', async () => {
58
- assert.rejects(actionDispatcher.dispatch({ kind: 'unhandled' }));
59
- });
60
- it('dispatch - one action', async () => {
61
- // Mock setup
62
- const action = 'action';
63
- const handler = new mock.StubActionHandler([action]);
64
- const getHandler = (kind) => (kind === action ? [handler] : []);
65
- registry_get_stub.callsFake(getHandler);
66
- const spy_handler_execute = sinon.spy(handler, 'execute');
67
- // Test execution
68
- await actionDispatcher.dispatch({ kind: action });
69
- (0, chai_1.expect)(spy_handler_execute.calledOnce).true;
70
- });
71
- describe('test multi dispatch with single-handled actions', () => {
72
- // Mock Setup
73
- const action1 = 'a1';
74
- const action2 = 'a2';
75
- const action3 = 'a3';
76
- const handler1 = new mock.StubActionHandler([action1]);
77
- const handler2 = new mock.StubActionHandler([action2]);
78
- const handler3 = new mock.StubActionHandler([action3]);
79
- const spy_handler1_execute = sinon.stub(handler1, 'execute').returns([]);
80
- const spy_handler2_execute = sinon.stub(handler2, 'execute').returns([]);
81
- const spy_handler3_execute = sinon.stub(handler3, 'execute').returns([]);
82
- const handlerMockImpl = (kind) => {
83
- switch (kind) {
84
- case action1:
85
- return [handler1];
86
- case action2:
87
- return [handler2];
88
- case action3:
89
- return [handler3];
90
- default:
91
- return [];
92
- }
93
- };
94
- it('dispatch - multiple actions', async () => {
95
- // Mock setup
96
- registry_get_stub.callsFake(handlerMockImpl);
97
- // Test execution
98
- actionDispatcher.dispatch({ kind: action1 });
99
- actionDispatcher.dispatch({ kind: action2 });
100
- await actionDispatcher.dispatch({ kind: action3 });
101
- // Check if all handlers have been called
102
- (0, chai_1.expect)(spy_handler1_execute.called).true;
103
- (0, chai_1.expect)(spy_handler2_execute.called).true;
104
- (0, chai_1.expect)(spy_handler3_execute.called).true;
105
- // Check if all handlers have been called in the right order
106
- sinon.assert.callOrder(spy_handler1_execute, spy_handler2_execute, spy_handler3_execute);
107
- });
108
- it('dispatchAll- multiple actions', async () => {
109
- // Mock setup
110
- registry_get_stub.callsFake(handlerMockImpl);
111
- // Test execution
112
- await actionDispatcher.dispatchAll([{ kind: action1 }, { kind: action2 }, { kind: action3 }]);
113
- // Check if all handlers have been called
114
- (0, chai_1.expect)(spy_handler1_execute.calledOnce);
115
- (0, chai_1.expect)(spy_handler2_execute.calledOnce);
116
- (0, chai_1.expect)(spy_handler3_execute.calledOnce);
117
- // Check if all handlers have been called in the right order
118
- sinon.assert.callOrder(spy_handler1_execute, spy_handler2_execute, spy_handler3_execute);
119
- });
120
- it('dispatch - multiple actions (racing execution times)', async () => {
121
- // Mock setup
122
- registry_get_stub.callsFake(handlerMockImpl);
123
- spy_handler1_execute.callsFake((_action) => {
124
- waitSync(500);
125
- return [];
126
- });
127
- spy_handler2_execute.callsFake((_action) => {
128
- waitSync(200);
129
- return [];
130
- });
131
- spy_handler3_execute.callsFake((_action) => {
132
- waitSync(100);
133
- return [];
134
- });
135
- // Test execution
136
- actionDispatcher.dispatch({ kind: action1 });
137
- actionDispatcher.dispatch({ kind: action2 });
138
- await actionDispatcher.dispatch({ kind: action3 });
139
- // Check if all handlers have been called
140
- (0, chai_1.expect)(spy_handler1_execute.calledOnce);
141
- (0, chai_1.expect)(spy_handler2_execute.calledOnce);
142
- (0, chai_1.expect)(spy_handler3_execute.calledOnce);
143
- // Check if all handlers have been called in the right order
144
- sinon.assert.callOrder(spy_handler1_execute, spy_handler2_execute, spy_handler3_execute);
145
- });
146
- });
147
- it('dispatch- one action & multiple handlers', async () => {
148
- // Mock setup
149
- const action1 = 'a1';
150
- const handler1 = new mock.StubActionHandler([action1]);
151
- const handler2 = new mock.StubActionHandler([action1]);
152
- registry_get_stub.callsFake((kind) => (kind === action1 ? [handler1, handler2] : []));
153
- const spy_handler1_execute = sinon.spy(handler1, 'execute');
154
- const spy_handler2_execute = sinon.spy(handler2, 'execute');
155
- // Test execution
156
- await actionDispatcher.dispatch({ kind: action1 });
157
- (0, chai_1.expect)(spy_handler1_execute.calledOnce);
158
- (0, chai_1.expect)(spy_handler2_execute.calledOnce);
159
- sinon.assert.callOrder(spy_handler1_execute, spy_handler2_execute);
160
- });
161
- });
162
- describe('test with handler response actions ', () => {
163
- it('dispatch - one action & one handler response action', async () => {
164
- // Mock setup
165
- const request = 'request';
166
- const response = 'response';
167
- const requestHandler = new mock.StubActionHandler([request]);
168
- const responseHandler = new mock.StubActionHandler([response]);
169
- const spy_requestHandler_execute = sinon.stub(requestHandler, 'execute').returns([{ kind: response }]);
170
- const spy_responseHandler_execute = sinon.spy(responseHandler, 'execute');
171
- registry_get_stub.callsFake((kind) => {
172
- switch (kind) {
173
- case request:
174
- return [requestHandler];
175
- case response:
176
- return [responseHandler];
177
- default:
178
- return [];
179
- }
180
- });
181
- // Test execution
182
- await actionDispatcher.dispatch({ kind: request });
183
- // Add a delay so that the action dispatcher has time to dispatch the handler response
184
- await mock.delay(200);
185
- // Check if all handlers have been called
186
- (0, chai_1.expect)(spy_requestHandler_execute.calledOnce);
187
- (0, chai_1.expect)(spy_responseHandler_execute.calledOnce);
188
- });
189
- it('dispatch - multiple actions & multiple response', async () => {
190
- // Mock setup
191
- const request1 = 'request1';
192
- const request2 = 'request2';
193
- const response1 = 'response1';
194
- const response2 = 'response2';
195
- const responseHandler1 = new mock.StubActionHandler([response1]);
196
- const responseHandler2 = new mock.StubActionHandler([response2]);
197
- const requestHandler1 = new mock.StubActionHandler([request1]);
198
- const requestHandler2 = new mock.StubActionHandler([request2]);
199
- const spy_requestHandler1_execute = sinon.stub(requestHandler1, 'execute').returns([{ kind: response1 }, { kind: response2 }]);
200
- const spy_requestHandler2_execute = sinon.stub(requestHandler2, 'execute').returns([{ kind: response2 }]);
201
- const spy_responseHandler1_execute = sinon.spy(responseHandler1, 'execute');
202
- const spy_responseHandler2_execute = sinon.spy(responseHandler2, 'execute');
203
- registry_get_stub.callsFake((kind) => {
204
- switch (kind) {
205
- case request1:
206
- return [requestHandler1];
207
- case request2:
208
- return [requestHandler2];
209
- case response1:
210
- return [responseHandler1, responseHandler2];
211
- case response2:
212
- return [responseHandler2];
213
- default:
214
- return [];
215
- }
216
- });
217
- // Test execution
218
- actionDispatcher.dispatch({ kind: request1 });
219
- await actionDispatcher.dispatch({ kind: request2 });
220
- // Add a delay so that the action dispatcher has time to dispatch the handler response
221
- await mock.delay(100);
222
- // Check if all handlers have been called correctly
223
- (0, chai_1.expect)(spy_requestHandler1_execute.calledOnce);
224
- (0, chai_1.expect)(spy_requestHandler2_execute.calledOnce);
225
- (0, chai_1.expect)(spy_responseHandler1_execute.calledOnce);
226
- (0, chai_1.expect)(spy_responseHandler2_execute.calledThrice);
227
- // Check if all handlers have been called in the right order
228
- sinon.assert.callOrder(spy_requestHandler1_execute, spy_requestHandler2_execute);
229
- sinon.assert.callOrder(spy_responseHandler1_execute, spy_responseHandler2_execute);
230
- });
231
- });
232
- describe('test dispatch after next update', () => {
233
- it('dispatchAfterNextUpdate', async () => {
234
- // Mock setup
235
- const updateModelAction = protocol_1.UpdateModelAction.create({ id: 'newRoot', type: 'myType' });
236
- const intermediateAction = 'intermediate';
237
- const postUpdateAction = 'postUpdate';
238
- const handler = new mock.StubActionHandler([updateModelAction.kind, intermediateAction]);
239
- const postUpdateHandler = new mock.StubActionHandler([postUpdateAction]);
240
- const getHandler = (kind) => {
241
- if (kind === updateModelAction.kind || kind === intermediateAction) {
242
- return [handler];
243
- }
244
- else if (kind === postUpdateAction) {
245
- return [postUpdateHandler];
246
- }
247
- return [];
248
- };
249
- registry_get_stub.callsFake(getHandler);
250
- const spy_postUpdateHandler_execute = sinon.spy(postUpdateHandler, 'execute');
251
- // Test execution
252
- actionDispatcher.dispatchAfterNextUpdate({ kind: postUpdateAction });
253
- (0, chai_1.expect)(spy_postUpdateHandler_execute.called).to.be.false;
254
- await actionDispatcher.dispatch({ kind: intermediateAction });
255
- (0, chai_1.expect)(spy_postUpdateHandler_execute.called).to.be.false;
256
- await actionDispatcher.dispatch(updateModelAction);
257
- (0, chai_1.expect)(spy_postUpdateHandler_execute.calledOnce);
258
- // Check that action does not get dispatched again
259
- await actionDispatcher.dispatch(updateModelAction);
260
- (0, chai_1.expect)(spy_postUpdateHandler_execute.calledOnce);
261
- });
262
- });
263
- });
264
- //# sourceMappingURL=action-dispatcher.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"action-dispatcher.spec.js","sourceRoot":"","sources":["../../../src/common/actions/action-dispatcher.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=action-handler-registry.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"action-handler-registry.spec.d.ts","sourceRoot":"","sources":["../../../src/common/actions/action-handler-registry.spec.ts"],"names":[],"mappings":""}