Remove router singleton

This commit is contained in:
Jon Staab
2026-06-16 11:08:46 -07:00
parent 96b0116c9b
commit 34065a18cf
7 changed files with 59 additions and 303 deletions
+5
View File
@@ -10,6 +10,7 @@ import {
} from "@welshman/util"
import {ISigner} from "@welshman/signer"
import {AdapterContext} from "@welshman/net"
import type {Router} from "@welshman/router"
import {
CreatedAtItem,
RequestItem,
@@ -25,6 +26,7 @@ import {getFeedArgs, feedsFromTags} from "./utils.js"
import {requestPage, requestDVM} from "./request.js"
export type FeedCompilerOptions = {
router: Router
signer?: ISigner
signal?: AbortSignal
context?: AdapterContext
@@ -157,6 +159,7 @@ export class FeedCompiler {
items.map(({mappings, ...request}) =>
requestDVM({
...request,
router: this.options.router,
signer: this.options.signer,
context: this.options.context,
onResult: async (e: TrustedEvent) => {
@@ -267,6 +270,7 @@ export class FeedCompiler {
const eventsByAddress = new Map<string, TrustedEvent>()
await requestPage({
router: this.options.router,
autoClose: true,
signal: this.options.signal,
context: this.options.context,
@@ -304,6 +308,7 @@ export class FeedCompiler {
labelItems.map(({mappings, relays, ...filter}) =>
requestPage({
relays,
router: this.options.router,
autoClose: true,
signal: this.options.signal,
context: this.options.context,
+2
View File
@@ -159,6 +159,7 @@ export class FeedController {
await requestPage(
omitVals([undefined], {
relays,
router: this.options.router,
autoClose: true,
filters: trimFilters(requestFilters),
signal: this.options.signal,
@@ -360,6 +361,7 @@ export class FeedController {
requestPage(
omitVals([undefined], {
relays,
router: this.options.router,
signal,
onEvent: (event: TrustedEvent) => onEvent?.(event),
filters: trimFilters(requestFilters),
+8 -4
View File
@@ -15,6 +15,7 @@ import {LOCAL_RELAY_URL, Tracker, AdapterContext, request, publish} from "@welsh
export type RequestPageOptions = {
filters: Filter[]
router: Router
onEvent: (event: TrustedEvent) => void
relays?: string[]
tracker?: Tracker
@@ -25,6 +26,7 @@ export type RequestPageOptions = {
export const requestPage = async ({
filters,
router,
onEvent,
relays = [],
tracker = new Tracker(),
@@ -49,14 +51,14 @@ export const requestPage = async ({
threshold: 0.1,
autoClose,
filters: withSearch,
relays: Router.get().Search().getUrls(),
relays: router.Search().getUrls(),
}),
)
}
if (withoutSearch.length > 0) {
promises.push(
...getFilterSelections(filters).flatMap(({relays, filters}) =>
...getFilterSelections(filters, router).flatMap(({relays, filters}) =>
request({
tracker,
signal,
@@ -91,6 +93,7 @@ export const requestPage = async ({
export type RequestDVMOptions = {
kind: number
router: Router
tags?: string[][]
relays?: string[]
signer?: ISigner
@@ -100,6 +103,7 @@ export type RequestDVMOptions = {
export const requestDVM = async ({
kind,
router,
onResult,
tags = [],
relays = [],
@@ -110,10 +114,10 @@ export const requestDVM = async ({
const events = await request({
autoClose: true,
filters: [{kinds: [RELAYS], authors: getPubkeyTagValues(tags)}],
relays: Router.get().Index().policy(addMinimalFallbacks).getUrls(),
relays: router.Index().policy(addMinimalFallbacks).getUrls(),
})
relays = Router.get()
relays = router
.FromRelays(events.flatMap(e => getRelaysFromList(readList(asDecryptedEvent(e)))))
.policy(addMinimalFallbacks)
.getUrls()