Reconnect with exponential backoff flag: enableReconnect (#507)

https://github.com/nbd-wtf/nostr-tools/pull/507
This commit is contained in:
Chris McCormick
2025-09-30 21:01:07 +08:00
committed by GitHub
parent 226d7d07e2
commit bc1294e4e6
7 changed files with 431 additions and 36 deletions

View File

@@ -1,7 +1,7 @@
/* global WebSocket */
import { verifyEvent } from './pure.ts'
import { AbstractRelay } from './abstract-relay.ts'
import { AbstractRelay, type AbstractRelayConstructorOptions } from './abstract-relay.ts'
var _WebSocket: typeof WebSocket
@@ -14,11 +14,14 @@ export function useWebSocketImplementation(websocketImplementation: any) {
}
export class Relay extends AbstractRelay {
constructor(url: string, options?: { enablePing?: boolean }) {
constructor(url: string, options?: Pick<AbstractRelayConstructorOptions, 'enablePing' | 'enableReconnect'>) {
super(url, { verifyEvent, websocketImplementation: _WebSocket, ...options })
}
static async connect(url: string, options?: { enablePing?: boolean }): Promise<Relay> {
static async connect(
url: string,
options?: Pick<AbstractRelayConstructorOptions, 'enablePing' | 'enableReconnect'>,
): Promise<Relay> {
const relay = new Relay(url, options)
await relay.connect()
return relay