From c81c738d504f320bccb64486582b5d351d377824 Mon Sep 17 00:00:00 2001 From: Denis Pingin <2085934+denis-pingin@users.noreply.github.com> Date: Mon, 16 Oct 2023 12:40:28 +0200 Subject: [PATCH 1/5] chore: websocket error handling --- src/utils/websocketHandler.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/utils/websocketHandler.ts b/src/utils/websocketHandler.ts index f57f4d9..83df4aa 100644 --- a/src/utils/websocketHandler.ts +++ b/src/utils/websocketHandler.ts @@ -123,6 +123,12 @@ export class WebsocketHandler { }, this.#reconnectIntervalMillis); }; + this.#websocket.onerror = (error: WebSocket.ErrorEvent) => { + this.#errorHandlers.forEach((handler) => { + handler(error); + }); + }; + this.#websocket.onmessage = async (data: WebSocket.MessageEvent) => { const message = JSON.parse( data.data.toString() From 4275420991a85f50599eae102a8d4e99086e8ed9 Mon Sep 17 00:00:00 2001 From: Denis Pingin <2085934+denis-pingin@users.noreply.github.com> Date: Mon, 16 Oct 2023 12:50:30 +0200 Subject: [PATCH 2/5] v5.5.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bf58cd4..d4556f9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@gelatonetwork/relay-sdk", - "version": "5.5.0", + "version": "5.5.1", "description": "SDK to integrate with Gelato Relay", "main": "dist/index.js", "types": "dist/index.d.ts", From 6bffd629d57d298134c308ceed078c924263644d Mon Sep 17 00:00:00 2001 From: Denis Pingin <2085934+denis-pingin@users.noreply.github.com> Date: Tue, 17 Oct 2023 10:44:04 +0200 Subject: [PATCH 3/5] chore: websocket error handling --- src/utils/websocketHandler.ts | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/utils/websocketHandler.ts b/src/utils/websocketHandler.ts index 83df4aa..9226e2c 100644 --- a/src/utils/websocketHandler.ts +++ b/src/utils/websocketHandler.ts @@ -124,9 +124,7 @@ export class WebsocketHandler { }; this.#websocket.onerror = (error: WebSocket.ErrorEvent) => { - this.#errorHandlers.forEach((handler) => { - handler(error); - }); + this._handleError(error); }; this.#websocket.onmessage = async (data: WebSocket.MessageEvent) => { @@ -139,9 +137,8 @@ export class WebsocketHandler { const errorWebsocketMessage = message as ErrorWebsocketMessage; const error: Error = errorWebsocketMessage.payload; - this.#errorHandlers.forEach((handler) => { - handler(error); - }); + this._handleError(error); + break; } case WebsocketEvent.UPDATE: { @@ -197,7 +194,10 @@ export class WebsocketHandler { private async _ensureIsConnected(): Promise { if (!this.#websocket) { this._connect(); - } else if (this.#websocket.readyState !== WebSocket.OPEN) { + } else if ( + this.#websocket.readyState !== WebSocket.CONNECTING && + this.#websocket.readyState !== WebSocket.OPEN + ) { this._reconnect(); } return await this._awaitConnection(); @@ -208,12 +208,10 @@ export class WebsocketHandler { while (!this.#websocket || this.#websocket.readyState !== WebSocket.OPEN) { const elapsed = Date.now() - start; if (elapsed > this.#connectTimeoutMillis) { - const error = new Error( - `Timeout connecting to ${this.#url} after ${elapsed}ms` + this._handleError( + new Error(`Timeout connecting to ${this.#url} after ${elapsed}ms`) ); - this.#errorHandlers.forEach((handler) => { - handler(error); - }); + return false; } @@ -221,4 +219,10 @@ export class WebsocketHandler { } return true; } + + private _handleError(error: Error) { + this.#errorHandlers.forEach((handler) => { + handler(error); + }); + } } From 6b6ccb49da50853d3b70487a11d2eb2ad89299c6 Mon Sep 17 00:00:00 2001 From: Denis Pingin <2085934+denis-pingin@users.noreply.github.com> Date: Tue, 17 Oct 2023 10:44:48 +0200 Subject: [PATCH 4/5] v5.5.2-0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d4556f9..9560803 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@gelatonetwork/relay-sdk", - "version": "5.5.1", + "version": "5.5.2-0", "description": "SDK to integrate with Gelato Relay", "main": "dist/index.js", "types": "dist/index.d.ts", From 650ed7861c181963016ad3ce04202f9495b00e01 Mon Sep 17 00:00:00 2001 From: Denis Pingin <2085934+denis-pingin@users.noreply.github.com> Date: Tue, 17 Oct 2023 15:55:53 +0200 Subject: [PATCH 5/5] v5.5.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9560803..e587869 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@gelatonetwork/relay-sdk", - "version": "5.5.2-0", + "version": "5.5.2", "description": "SDK to integrate with Gelato Relay", "main": "dist/index.js", "types": "dist/index.d.ts",