diff options
Diffstat (limited to 'subprojects/frontend/src/xtext/XtextWebSocketClient.ts')
-rw-r--r-- | subprojects/frontend/src/xtext/XtextWebSocketClient.ts | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/subprojects/frontend/src/xtext/XtextWebSocketClient.ts b/subprojects/frontend/src/xtext/XtextWebSocketClient.ts index eedfa365..b69e1d6c 100644 --- a/subprojects/frontend/src/xtext/XtextWebSocketClient.ts +++ b/subprojects/frontend/src/xtext/XtextWebSocketClient.ts | |||
@@ -22,6 +22,8 @@ const log = getLogger('xtext.XtextWebSocketClient'); | |||
22 | 22 | ||
23 | export type ReconnectHandler = () => void; | 23 | export type ReconnectHandler = () => void; |
24 | 24 | ||
25 | export type DisconnectHandler = () => void; | ||
26 | |||
25 | export type PushHandler = ( | 27 | export type PushHandler = ( |
26 | resourceId: string, | 28 | resourceId: string, |
27 | stateId: string, | 29 | stateId: string, |
@@ -136,6 +138,7 @@ export default class XtextWebSocketClient { | |||
136 | 138 | ||
137 | constructor( | 139 | constructor( |
138 | private readonly onReconnect: ReconnectHandler, | 140 | private readonly onReconnect: ReconnectHandler, |
141 | private readonly onDisconnect: DisconnectHandler, | ||
139 | private readonly onPush: PushHandler, | 142 | private readonly onPush: PushHandler, |
140 | ) { | 143 | ) { |
141 | this.interpreter | 144 | this.interpreter |
@@ -179,10 +182,18 @@ export default class XtextWebSocketClient { | |||
179 | return this.interpreter.state; | 182 | return this.interpreter.state; |
180 | } | 183 | } |
181 | 184 | ||
185 | get opening(): boolean { | ||
186 | return this.state.matches('connection.socketCreated.open.opening'); | ||
187 | } | ||
188 | |||
182 | get opened(): boolean { | 189 | get opened(): boolean { |
183 | return this.state.matches('connection.socketCreated.open.opened'); | 190 | return this.state.matches('connection.socketCreated.open.opened'); |
184 | } | 191 | } |
185 | 192 | ||
193 | get errors(): string[] { | ||
194 | return this.state.context.errors; | ||
195 | } | ||
196 | |||
186 | connect(): void { | 197 | connect(): void { |
187 | this.interpreter.send('CONNECT'); | 198 | this.interpreter.send('CONNECT'); |
188 | } | 199 | } |
@@ -261,6 +272,7 @@ export default class XtextWebSocketClient { | |||
261 | } | 272 | } |
262 | 273 | ||
263 | private cancelPendingRequests(): void { | 274 | private cancelPendingRequests(): void { |
275 | this.onDisconnect(); | ||
264 | this.pendingRequests.forEach((task) => | 276 | this.pendingRequests.forEach((task) => |
265 | task.reject(new CancelledError('Closing connection')), | 277 | task.reject(new CancelledError('Closing connection')), |
266 | ); | 278 | ); |