/* global WebSocket */ import { verifyEvent } from './pure.ts' import { AbstractRelay, type AbstractRelayConstructorOptions } from './abstract-relay.ts' var _WebSocket: typeof WebSocket try { _WebSocket = WebSocket } catch {} export function useWebSocketImplementation(websocketImplementation: any) { _WebSocket = websocketImplementation } export class Relay extends AbstractRelay { constructor(url: string, options?: Pick) { super(url, { verifyEvent, websocketImplementation: _WebSocket, ...options }) } static async connect( url: string, options?: Pick, ): Promise { const relay = new Relay(url, options) await relay.connect() return relay } } export type RelayRecord = Record export * from './abstract-relay.ts'