Remove ISocket

This commit is contained in:
Jon Staab
2025-03-20 16:51:26 -07:00
parent f00ffc5c9c
commit 6e15f1f6c1
2 changed files with 8 additions and 25 deletions
+5 -5
View File
@@ -1,15 +1,15 @@
import {remove} from "@welshman/lib" import {remove} from "@welshman/lib"
import {normalizeRelayUrl} from "@welshman/util" import {normalizeRelayUrl} from "@welshman/util"
import {ISocket, makeSocket} from "./socket.js" import {Socket, makeSocket} from "./socket.js"
export type PoolSubscription = (socket: ISocket) => void export type PoolSubscription = (socket: Socket) => void
export type PoolOptions = { export type PoolOptions = {
makeSocket?: (url: string) => ISocket makeSocket?: (url: string) => Socket
} }
export class Pool { export class Pool {
_data = new Map<string, ISocket>() _data = new Map<string, Socket>()
_subs: PoolSubscription[] = [] _subs: PoolSubscription[] = []
constructor(readonly options: PoolOptions) {} constructor(readonly options: PoolOptions) {}
@@ -26,7 +26,7 @@ export class Pool {
return makeSocket(url) return makeSocket(url)
} }
get(_url: string): ISocket { get(_url: string): Socket {
const url = normalizeRelayUrl(_url) const url = normalizeRelayUrl(_url)
const oldSocket = this._data.get(url) const oldSocket = this._data.get(url)
+3 -20
View File
@@ -77,24 +77,7 @@ export type SocketRecvSubscriber = (event: SocketEvent) => void
export type SocketUnsubscriber = () => void export type SocketUnsubscriber = () => void
export interface ISocket { export class Socket {
open(): void
close(): void
cleanup(): void
send(message: ClientMessage): void
onSend(cb: SocketSendSubscriber): SocketUnsubscriber
subscribe(cb: SocketRecvSubscriber): SocketUnsubscriber
onError(cb: (error: string) => void): SocketUnsubscriber
onStatus(cb: (status: SocketStatus) => void): SocketUnsubscriber
onMessage(cb: (message: RelayMessage) => void): SocketUnsubscriber
onAuth(cb: (message: RelayAuthPayload) => void): SocketUnsubscriber
onEose(cb: (message: RelayEosePayload) => void): SocketUnsubscriber
onEvent(cb: (message: RelayEventPayload) => void): SocketUnsubscriber
onOk(cb: (message: RelayOkPayload) => void): SocketUnsubscriber
wrap(overrides: Partial<ISocket>): ISocket
}
export class Socket implements ISocket {
_ws?: WebSocket _ws?: WebSocket
_sendSubs: SocketSendSubscriber[] = [] _sendSubs: SocketSendSubscriber[] = []
_recvSubs: SocketRecvSubscriber[] = [] _recvSubs: SocketRecvSubscriber[] = []
@@ -259,9 +242,9 @@ export class Socket implements ISocket {
}) })
} }
wrap = (overrides: Partial<ISocket>): ISocket => { wrap = (overrides: Partial<Socket>): Socket => {
return new Proxy(this, { return new Proxy(this, {
get: (target, prop: keyof ISocket) => { get: (target, prop: keyof Socket) => {
if (prop in overrides) { if (prop in overrides) {
return overrides[prop] return overrides[prop]
} }