diff options
| author | Adam Soltys <[email protected]> | 2024-10-18 09:08:07 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-10-18 09:09:14 -0700 |
| commit | 002cd9134d2e23bec34f838f6d6fefba41f2d530 (patch) | |
| tree | 92fa0e0ab54ce1a715d25f458de8b8ed8cc70bd5 /src/lib/socket.ts | |
| parent | f6bfe889d91bc6e36b0300d7b618f10158efe176 (diff) | |
| download | coinos-ui-002cd9134d2e23bec34f838f6d6fefba41f2d530.tar.gz coinos-ui-002cd9134d2e23bec34f838f6d6fefba41f2d530.zip | |
biome format
Diffstat (limited to 'src/lib/socket.ts')
| -rw-r--r-- | src/lib/socket.ts | 101 |
1 files changed, 52 insertions, 49 deletions
diff --git a/src/lib/socket.ts b/src/lib/socket.ts index 26ab543c..bbedd3ed 100644 --- a/src/lib/socket.ts +++ b/src/lib/socket.ts @@ -11,44 +11,44 @@ let token; export const auth = () => token && send("login", token); export const send = async (type, data) => { - try { - await wait(() => socket && socket.readyState === 1, 100, 10); - } catch (e: any) { - if (e.message === "timeout") reconnectToWebsocket(); - } + try { + await wait(() => socket && socket.readyState === 1, 100, 10); + } catch (e: any) { + if (e.message === "timeout") reconnectToWebsocket(); + } - await wait(() => socket.readyState === 1, 100, 10); - socket.send(JSON.stringify({ type, data })); + await wait(() => socket.readyState === 1, 100, 10); + socket.send(JSON.stringify({ type, data })); }; export const messages = (data) => ({ - id() { - last.set(Date.now()); - }, - invoice() { - invoice.set(data); - }, - event() { - event.set(data); - }, + id() { + last.set(Date.now()); + }, + invoice() { + invoice.set(data); + }, + event() { + event.set(data); + }, - request() { - request.set(data); - invalidate("app:invoice"); - }, + request() { + request.set(data); + invalidate("app:invoice"); + }, - async payment() { - let { amount, confirmed } = data; - invalidate("app:user"); - invalidate("app:invoice"); - invalidate("app:payments"); + async payment() { + let { amount, confirmed } = data; + invalidate("app:user"); + invalidate("app:invoice"); + invalidate("app:payments"); - if (amount > 0) { - success(`${confirmed ? "Received" : "Detected"} ${sat(amount)}!`); - } - }, + if (amount > 0) { + success(`${confirmed ? "Received" : "Detected"} ${sat(amount)}!`); + } + }, - connected: auth, + connected: auth, }); const initialReconnectDelay = 1000; @@ -57,41 +57,44 @@ const maxReconnectDelay = 16000; let currentReconnectDelay = initialReconnectDelay; export function connect(t) { - token = t; + token = t; - if (socket) return auth(); + if (socket) return auth(); - socket = new WebSocket(PUBLIC_SOCKET); - socket.addEventListener("open", onWebsocketOpen); - socket.addEventListener("close", onWebsocketClose); - socket.addEventListener("message", onWebsocketMessage); + socket = new WebSocket(PUBLIC_SOCKET); + socket.addEventListener("open", onWebsocketOpen); + socket.addEventListener("close", onWebsocketClose); + socket.addEventListener("message", onWebsocketMessage); } export function close() { - if (socket) socket.close(); + if (socket) socket.close(); } async function onWebsocketMessage(msg) { - let { type, data } = JSON.parse(msg.data); - if (get(navigating)) await sleep(2000); + let { type, data } = JSON.parse(msg.data); + if (get(navigating)) await sleep(2000); - messages(data)[type] && messages(data)[type](); + messages(data)[type] && messages(data)[type](); } function onWebsocketOpen() { - currentReconnectDelay = initialReconnectDelay; + currentReconnectDelay = initialReconnectDelay; } function onWebsocketClose() { - socket = null; - setTimeout(() => { - reconnectToWebsocket(); - }, currentReconnectDelay + Math.floor(Math.random() * 3000)); + socket = null; + setTimeout( + () => { + reconnectToWebsocket(); + }, + currentReconnectDelay + Math.floor(Math.random() * 3000), + ); } function reconnectToWebsocket() { - if (currentReconnectDelay < maxReconnectDelay) { - currentReconnectDelay *= 2; - } - connect(token); + if (currentReconnectDelay < maxReconnectDelay) { + currentReconnectDelay *= 2; + } + connect(token); } |
