From bd76c0b86c0ceed1ff5425975d46ed18092c9f12 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Tue, 17 Feb 2026 16:02:29 +0100 Subject: [PATCH] Improved a few things --- src/client.ts | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/client.ts b/src/client.ts index 657f947..517381b 100644 --- a/src/client.ts +++ b/src/client.ts @@ -69,10 +69,7 @@ async function ensureSocket(useLocalhost: boolean): Promise { return connecting; } - if (socket && currentOrigin !== origin) { - socket.close(); - socket = null; - } + if (socket && currentOrigin !== origin) closeClient(); connecting = new Promise((resolve, reject) => { const ws = new WebSocket(origin); @@ -88,7 +85,7 @@ async function ensureSocket(useLocalhost: boolean): Promise { currentOrigin = origin; connecting = null; - await sendUnsafe(useLocalhost, { + await sendUnsafe({ type: "auth", cookies: authCookies, }); @@ -146,10 +143,7 @@ async function ensureSocket(useLocalhost: boolean): Promise { RPC helpers ────────────────────────── */ -async function sendUnsafe( - useLocalhost: boolean, - payload: Record, -): Promise { +async function sendUnsafe(payload: Record): Promise { if (!socket || socket.readyState !== WebSocket.OPEN) { throw new Error("WebSocket is not open"); } @@ -164,7 +158,11 @@ async function sendUnsafe( pending.set(requestId, { resolve, reject, timeout }); - socket?.send(JSON.stringify({ ...payload, requestId })); + if (!socket || socket.readyState !== WebSocket.OPEN) { + throw new Error("WebSocket closed while sending"); + } + + socket.send(JSON.stringify({ ...payload, requestId })); }); } @@ -173,7 +171,7 @@ async function send( payload: Record, ): Promise { await ensureSocket(useLocalhost); - return sendUnsafe(useLocalhost, payload); + return sendUnsafe(payload); } /* ──────────────────────────