From d0bc650f447d771012298c31a7636f1c1e287648 Mon Sep 17 00:00:00 2001 From: Tejas Badadare Date: Tue, 14 Jan 2025 20:33:10 -0800 Subject: [PATCH] fix: lint --- lazer/sdk/js/examples/index.ts | 6 +++--- lazer/sdk/js/src/client.ts | 4 ++-- lazer/sdk/js/src/socket/resilient-websocket.ts | 7 ++++--- lazer/sdk/js/src/socket/websocket-pool.ts | 12 +++++++----- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/lazer/sdk/js/examples/index.ts b/lazer/sdk/js/examples/index.ts index 1390c3f6e..3a301029e 100644 --- a/lazer/sdk/js/examples/index.ts +++ b/lazer/sdk/js/examples/index.ts @@ -15,7 +15,7 @@ async function main() { ); // Monitor for all connections being down - client.onAllConnectionsDown().then(() => { + void client.onAllConnectionsDown().then(() => { // Handle complete connection failure. // The connections will keep attempting to reconnect with expo backoff. // To shutdown the client completely, call shutdown(). @@ -82,7 +82,7 @@ async function main() { client.shutdown(); } -main().catch((error) => { +await main().catch((error: unknown) => { console.error("Unhandled error:", error); - process.exit(1); + throw error; }); diff --git a/lazer/sdk/js/src/client.ts b/lazer/sdk/js/src/client.ts index 05052c7ec..827e28747 100644 --- a/lazer/sdk/js/src/client.ts +++ b/lazer/sdk/js/src/client.ts @@ -10,7 +10,7 @@ import { type Response, SOLANA_FORMAT_MAGIC_BE, } from "./protocol.js"; -import { WebSocketPool } from "./socket/web-socket-pool.js"; +import { WebSocketPool } from "./socket/websocket-pool.js"; export type BinaryResponse = { subscriptionId: number; @@ -36,7 +36,7 @@ export class PythLazerClient { * Creates a new PythLazerClient instance. * @param urls - List of WebSocket URLs of the Pyth Lazer service * @param token - The access token for authentication - * @param numConnections - The number of parallel WebSocket connections to establish (default: 3). A higher number gives a more reliable stream. + * @param numConnections - The number of parallel WebSocket connections to establish (default: 3). A higher number gives a more reliable stream. The connections will round-robin across the provided URLs. * @param logger - Optional logger to get socket level logs. Compatible with most loggers such as the built-in console and `bunyan`. */ static async create( diff --git a/lazer/sdk/js/src/socket/resilient-websocket.ts b/lazer/sdk/js/src/socket/resilient-websocket.ts index 8ee1588d4..0c88c83bd 100644 --- a/lazer/sdk/js/src/socket/resilient-websocket.ts +++ b/lazer/sdk/js/src/socket/resilient-websocket.ts @@ -1,4 +1,5 @@ import type { ClientRequestArgs } from "node:http"; + import WebSocket, { type ClientOptions, type ErrorEvent } from "isomorphic-ws"; import type { Logger } from "ts-log"; @@ -16,7 +17,7 @@ export class ResilientWebSocket { private connectionPromise: Promise | undefined; private resolveConnection: (() => void) | undefined; private rejectConnection: ((error: Error) => void) | undefined; - private _isReconnecting: boolean = false; + private _isReconnecting = false; get isReconnecting(): boolean { return this._isReconnecting; @@ -72,7 +73,7 @@ export class ResilientWebSocket { if (this.connectionPromise) { return this.connectionPromise; } - return Promise.resolve(); + return; } this.logger?.info(`Creating Web Socket client`); @@ -87,7 +88,7 @@ export class ResilientWebSocket { const timeoutId = setTimeout(() => { if (this.rejectConnection) { this.rejectConnection( - new Error(`Connection timeout after ${CONNECTION_TIMEOUT}ms`) + new Error(`Connection timeout after ${String(CONNECTION_TIMEOUT)}ms`) ); } }, CONNECTION_TIMEOUT); diff --git a/lazer/sdk/js/src/socket/websocket-pool.ts b/lazer/sdk/js/src/socket/websocket-pool.ts index 99ecd9eb9..af0757d64 100644 --- a/lazer/sdk/js/src/socket/websocket-pool.ts +++ b/lazer/sdk/js/src/socket/websocket-pool.ts @@ -2,7 +2,7 @@ import TTLCache from "@isaacs/ttlcache"; import WebSocket from "isomorphic-ws"; import { dummyLogger, type Logger } from "ts-log"; -import { ResilientWebSocket } from "./resilient-web-socket.js"; +import { ResilientWebSocket } from "./resilient-websocket.js"; import type { Request, Response } from "../protocol.js"; const DEFAULT_NUM_CONNECTIONS = 3; @@ -13,7 +13,7 @@ export class WebSocketPool { private subscriptions: Map; // id -> subscription Request private messageListeners: ((event: WebSocket.Data) => void)[]; private allConnectionsDownListeners: (() => void)[]; - private wasAllDown: boolean = true; + private wasAllDown = true; private constructor(private readonly logger: Logger = dummyLogger) { this.rwsPool = []; @@ -23,7 +23,9 @@ export class WebSocketPool { this.allConnectionsDownListeners = []; // Start monitoring connection states - setInterval(() => this.checkConnectionStates(), 100); + setInterval(() => { + this.checkConnectionStates(); + }, 100); } /** @@ -179,8 +181,8 @@ export class WebSocketPool { } /** - * Monitors if all websocket connections are currently down or in reconnecting state - * Returns a promise that resolves when all connections are down + * Monitors if all websocket connections are currently down or in reconnecting state. + * Returns a promise that resolves when all connections are down. */ onAllConnectionsDown(): Promise { return new Promise((resolve) => {