From db7b9abbe49db7503006cc7f7184aa4792443537 Mon Sep 17 00:00:00 2001 From: Aleksandr Kraiz Date: Fri, 2 Jun 2023 12:50:05 +0400 Subject: [PATCH] new callbacks --- package-lock.json | 4 ++-- package.json | 2 +- src/services/Aggregator/ws/index.ts | 21 ++++++++++----------- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2e12cdf..b4d9887 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@orionprotocol/sdk", - "version": "0.19.18", + "version": "0.19.19", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@orionprotocol/sdk", - "version": "0.19.18", + "version": "0.19.19", "license": "ISC", "dependencies": { "@babel/runtime": "^7.21.0", diff --git a/package.json b/package.json index 35a2493..ef4dddc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.19.18", + "version": "0.19.19", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", diff --git a/src/services/Aggregator/ws/index.ts b/src/services/Aggregator/ws/index.ts index bf860fc..4d051b0 100644 --- a/src/services/Aggregator/ws/index.ts +++ b/src/services/Aggregator/ws/index.ts @@ -186,6 +186,10 @@ class AggregatorWS { public onInit: (() => void) | undefined + public onWSOpen: ((event: WebSocket.Event) => void) | undefined + + public onWSClose: ((event: WebSocket.CloseEvent) => void) | undefined + public onError: ((err: string) => void) | undefined public logger: ((message: string) => void) | undefined @@ -200,16 +204,8 @@ class AggregatorWS { readonly instanceId = uuidv4(); - constructor( - wsUrl: string, - logger?: (msg: string) => void, - onInit?: () => void, - onError?: (err: string) => void - ) { + constructor(wsUrl: string) { this.wsUrl = wsUrl; - this.logger = logger; - this.onInit = onInit; - this.onError = onError; } // readonly messageQueue: Message[] = []; @@ -402,13 +398,16 @@ class AggregatorWS { this.isClosedIntentionally = false; this.ws = new WebSocket(this.wsUrl); this.ws.onerror = (err) => { + this.onError?.(`AggregatorWS error: ${err.message}`); this.logger?.(`AggregatorWS: ${err.message}`); }; - this.ws.onclose = () => { + this.ws.onclose = (event) => { + this.onWSClose?.(event); this.logger?.(`AggregatorWS: connection closed ${this.isClosedIntentionally ? 'intentionally' : ''}`); if (!this.isClosedIntentionally) this.init(true); }; - this.ws.onopen = () => { + this.ws.onopen = (e) => { + this.onWSOpen?.(e); // Re-subscribe to all subscriptions if (isReconnect) { Object.keys(this.subscriptions)