mirror of
https://github.com/nbd-wtf/nostr-tools.git
synced 2025-12-09 16:48:50 +00:00
edit batchedList and add mergeFilters to it
This commit is contained in:
17
pool.ts
17
pool.ts
@@ -1,8 +1,8 @@
|
|||||||
import { relayInit, eventsGenerator, type Relay, type Sub, type SubscriptionOptions } from './relay.ts'
|
import { eventsGenerator, relayInit, type Relay, type Sub, type SubscriptionOptions } from './relay.ts'
|
||||||
import { normalizeURL } from './utils.ts'
|
import { normalizeURL } from './utils.ts'
|
||||||
|
|
||||||
import type { Event } from './event.ts'
|
import type { Event } from './event.ts'
|
||||||
import { matchFilters, type Filter } from './filter.ts'
|
import { matchFilters, mergeFilters, type Filter } from './filter.ts'
|
||||||
|
|
||||||
type BatchedRequest = {
|
type BatchedRequest = {
|
||||||
filters: Filter<any>[]
|
filters: Filter<any>[]
|
||||||
@@ -79,13 +79,10 @@ export class SimplePool {
|
|||||||
let eosesMissing = relays.length
|
let eosesMissing = relays.length
|
||||||
|
|
||||||
let eoseSent = false
|
let eoseSent = false
|
||||||
let eoseTimeout = setTimeout(
|
let eoseTimeout = setTimeout(() => {
|
||||||
() => {
|
eoseSent = true
|
||||||
eoseSent = true
|
for (let cb of eoseListeners.values()) cb()
|
||||||
for (let cb of eoseListeners.values()) cb()
|
}, opts?.eoseSubTimeout || this.eoseSubTimeout)
|
||||||
},
|
|
||||||
opts?.eoseSubTimeout || this.eoseSubTimeout,
|
|
||||||
)
|
|
||||||
|
|
||||||
relays
|
relays
|
||||||
.filter((r, i, a) => a.indexOf(r) === i)
|
.filter((r, i, a) => a.indexOf(r) === i)
|
||||||
@@ -213,7 +210,7 @@ export class SimplePool {
|
|||||||
relays.push(...br.relays)
|
relays.push(...br.relays)
|
||||||
})
|
})
|
||||||
|
|
||||||
const sub = this.sub(relays, filters)
|
const sub = this.sub(relays, [mergeFilters(...filters)])
|
||||||
sub.on('event', event => {
|
sub.on('event', event => {
|
||||||
batchedRequests.forEach(br => matchFilters(br.filters, event) && br.events.push(event))
|
batchedRequests.forEach(br => matchFilters(br.filters, event) && br.events.push(event))
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user