diff --git a/relay.ts b/relay.ts index 86ac339..d9c2b87 100644 --- a/relay.ts +++ b/relay.ts @@ -6,8 +6,8 @@ import {Filter, matchFilters} from './filter' export type Relay = { url: string status: number - connect: () => void - close: () => void + connect: () => Promise + close: () => Promise sub: (filters: Filter[], opts: SubscriptionOptions) => Sub publish: (event: Event) => Pub on: (type: 'connect' | 'disconnect' | 'notice', cb: any) => void @@ -257,10 +257,11 @@ export function relayInit(url: string): Relay { }, connect, close(): Promise { - ws.close() - return new Promise(resolve => { + const result = new Promise(resolve => { resolveClose = resolve }) + ws.close() + return result }, get status() { return ws?.readyState ?? 3