Remove ISocket
This commit is contained in:
@@ -1,15 +1,15 @@
|
||||
import {remove} from "@welshman/lib"
|
||||
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 = {
|
||||
makeSocket?: (url: string) => ISocket
|
||||
makeSocket?: (url: string) => Socket
|
||||
}
|
||||
|
||||
export class Pool {
|
||||
_data = new Map<string, ISocket>()
|
||||
_data = new Map<string, Socket>()
|
||||
_subs: PoolSubscription[] = []
|
||||
|
||||
constructor(readonly options: PoolOptions) {}
|
||||
@@ -26,7 +26,7 @@ export class Pool {
|
||||
return makeSocket(url)
|
||||
}
|
||||
|
||||
get(_url: string): ISocket {
|
||||
get(_url: string): Socket {
|
||||
const url = normalizeRelayUrl(_url)
|
||||
const oldSocket = this._data.get(url)
|
||||
|
||||
|
||||
@@ -77,24 +77,7 @@ export type SocketRecvSubscriber = (event: SocketEvent) => void
|
||||
|
||||
export type SocketUnsubscriber = () => void
|
||||
|
||||
export interface ISocket {
|
||||
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 {
|
||||
export class Socket {
|
||||
_ws?: WebSocket
|
||||
_sendSubs: SocketSendSubscriber[] = []
|
||||
_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, {
|
||||
get: (target, prop: keyof ISocket) => {
|
||||
get: (target, prop: keyof Socket) => {
|
||||
if (prop in overrides) {
|
||||
return overrides[prop]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user