diff options
Diffstat (limited to 'extension/src/util')
| -rw-r--r-- | extension/src/util/messenger.ts | 10 | 
1 files changed, 10 insertions, 0 deletions
| diff --git a/extension/src/util/messenger.ts b/extension/src/util/messenger.ts index b1df161b..7fd71ddd 100644 --- a/extension/src/util/messenger.ts +++ b/extension/src/util/messenger.ts @@ -15,6 +15,8 @@ export abstract class Messenger {    abstract onOpen(callback: () => void): void;    abstract onClose(callback: () => void): void; +   +  abstract onError(callback: () => void): void;    abstract sendAndReceive(messageType: string, data: any): Promise<any>;  } @@ -26,6 +28,7 @@ export class WebsocketMessenger extends Messenger {    } = {};    private onOpenListeners: (() => void)[] = [];    private onCloseListeners: (() => void)[] = []; +  private onErrorListeners: (() => void)[] = [];    private serverUrl: string;    _newWebsocket(): WebSocket { @@ -43,6 +46,9 @@ export class WebsocketMessenger extends Messenger {      for (const listener of this.onCloseListeners) {        this.onClose(listener);      } +    for (const listener of this.onErrorListeners) { +      this.onError(listener); +    }      for (const messageType in this.onMessageListeners) {        for (const listener of this.onMessageListeners[messageType]) {          this.onMessageType(messageType, listener); @@ -151,4 +157,8 @@ export class WebsocketMessenger extends Messenger {    onClose(callback: () => void): void {      this.websocket.addEventListener("close", callback);    } + +  onError(callback: () => void): void { +    this.websocket.addEventListener("error", callback); +  }  } | 
