From 387af8fc1603805b02ce03f8adba4fa73a954f7c Mon Sep 17 00:00:00 2001 From: polwex Date: Wed, 17 Sep 2025 12:24:41 +0700 Subject: relay much more robust --- shim/ws-shim/src/lib.ts | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 shim/ws-shim/src/lib.ts (limited to 'shim/ws-shim/src/lib.ts') diff --git a/shim/ws-shim/src/lib.ts b/shim/ws-shim/src/lib.ts new file mode 100644 index 0000000..ec61a90 --- /dev/null +++ b/shim/ws-shim/src/lib.ts @@ -0,0 +1,38 @@ +import type { RelayMessage, ShimRequest, ShimResponse } from "./types"; + +export function parseRelayMsg(message: RelayMessage): ShimResponse["msg"] { + switch (message[0]) { + case "EVENT": { + const [, subscription_id, event] = message; + return { event: { subscription_id, event } }; + } + + case "OK": { + const [, event_id, accepted, msg] = message; + return { ok: { event_id, accepted, message: msg } }; + } + + case "EOSE": { + const [, subscriptionId] = message; + return { eose: subscriptionId }; + } + + case "CLOSED": { + const [, subscription_id, msg] = message; + return { closed: { subscription_id, message: msg } }; + } + + case "NOTICE": { + const [, messag] = message; + return { notice: messag }; + } + + case "AUTH": { + const [, challenge] = message; + return { auth: challenge }; + } + } +} +export function wait(ms: number) { + return new Promise((resolve) => setTimeout(resolve, ms)); +} -- cgit v1.2.3