relay: fix type errors

This commit is contained in:
Lynn Zenn
2023-04-18 15:11:27 +02:00
committed by fiatjaf_
parent ef3184a6e0
commit 26e35d50e0

View File

@@ -56,7 +56,7 @@ export type Sub = {
export type SubscriptionOptions = { export type SubscriptionOptions = {
id?: string id?: string
verb?: 'REQ' | 'COUNT', verb?: 'REQ' | 'COUNT'
skipVerification?: boolean skipVerification?: boolean
alreadyHaveEvent?: null | ((id: string, relay: string) => boolean) alreadyHaveEvent?: null | ((id: string, relay: string) => boolean)
} }
@@ -153,7 +153,7 @@ export function relayInit(
// will naturally be caught by the encompassing try..catch block // will naturally be caught by the encompassing try..catch block
switch (data[0]) { switch (data[0]) {
case 'EVENT': case 'EVENT': {
let id = data[1] let id = data[1]
let event = data[2] let event = data[2]
if ( if (
@@ -166,6 +166,7 @@ export function relayInit(
;(subListeners[id]?.event || []).forEach(cb => cb(event)) ;(subListeners[id]?.event || []).forEach(cb => cb(event))
} }
return return
}
case 'COUNT': case 'COUNT':
let id = data[1] let id = data[1]
let payload = data[2] let payload = data[2]
@@ -334,14 +335,17 @@ export function relayInit(
resolve(event) resolve(event)
}) })
}), }),
count: (filters: Filter[], opts?: SubscriptionOptions): Promise<CountPayload | null> => count: (
filters: Filter[],
opts?: SubscriptionOptions
): Promise<CountPayload | null> =>
new Promise(resolve => { new Promise(resolve => {
let s = sub(filters, {...sub, verb: 'COUNT'}) let s = sub(filters, {...sub, verb: 'COUNT'})
let timeout = setTimeout(() => { let timeout = setTimeout(() => {
s.unsub() s.unsub()
resolve(null) resolve(null)
}, countTimeout) }, countTimeout)
s.on('count', (event: Event) => { s.on('count', (event: CountPayload) => {
s.unsub() s.unsub()
clearTimeout(timeout) clearTimeout(timeout)
resolve(event) resolve(event)