Add task queue, work on socket

This commit is contained in:
Jon Staab
2025-03-20 14:22:40 -07:00
parent 7706034b99
commit 7d0d303dae
10 changed files with 345 additions and 35 deletions
+38
View File
@@ -0,0 +1,38 @@
import type {SignedEvent} from "@welshman/util"
export enum RelayMessageType {
Auth = "AUTH",
Event = "EVENT",
Eose = "EOSE",
Ok = "OK",
}
export type RelayAuthPayload = [string]
export type RelayEventPayload = [string, SignedEvent]
export type RelayEosePayload = [string, SignedEvent]
export type RelayOkPayload = [string, boolean, string]
export type RelayAuthMessage = ["AUTH", ...RelayAuthPayload]
export type RelayEventMessage = ["EVENT", ...RelayEventPayload]
export type RelayEoseMessage = ["EOSE", ...RelayEosePayload]
export type RelayOkMessage = ["OK", ...RelayOkPayload]
export type RelayMessage = any[]
export const isRelayAuthMessage = (m: RelayMessage): m is RelayAuthMessage =>
m[0] === RelayMessageType.Auth
export const isRelayEventMessage = (m: RelayMessage): m is RelayEventMessage =>
m[0] === RelayMessageType.Event
export const isRelayEoseMessage = (m: RelayMessage): m is RelayEoseMessage =>
m[0] === RelayMessageType.Eose
export const isRelayOkMessage = (m: RelayMessage): m is RelayOkMessage =>
m[0] === RelayMessageType.Ok