Accept multiple filters to request

This commit is contained in:
Jon Staab
2025-04-01 13:15:50 -07:00
parent fd0cdf2c19
commit 05a9d6461b
16 changed files with 105 additions and 93 deletions
+5 -10
View File
@@ -11,17 +11,12 @@ import {wotGraph, maxWot, getFollows, getNetwork, getFollowers} from "./wot.js"
export const request = async ({filters = [{}], relays = [], onEvent}: RequestOpts) => {
if (relays.length > 0) {
await Promise.all(
filters.map(
filter =>
new Promise<void>(resolve => {
const sub = new MultiRequest({filter, relays, timeout: 5000, autoClose: true})
await new Promise<void>(resolve => {
const sub = new MultiRequest({filters, relays, timeout: 5000, autoClose: true})
sub.on(RequestEvent.Event, onEvent)
sub.on(RequestEvent.Close, resolve)
}),
),
)
sub.on(RequestEvent.Event, onEvent)
sub.on(RequestEvent.Close, resolve)
})
} else {
await Promise.all(getFilterSelections(filters).map(opts => request({...opts, onEvent})))
}