remove fetch relay via dufflepud

This commit is contained in:
Jon Staab
2026-01-06 11:28:44 -08:00
parent cee6ec1124
commit d5724fbdf2
+2 -36
View File
@@ -1,9 +1,8 @@
import {writable, derived, Subscriber} from "svelte/store"
import {batcher, fetchJson, postJson, Maybe, noop} from "@welshman/lib"
import {fetchJson, Maybe} from "@welshman/lib"
import {RelayProfile} from "@welshman/util"
import {displayRelayUrl, displayRelayProfile} from "@welshman/util"
import {getter, deriveItems, makeForceLoadItem, makeLoadItem, makeDeriveItem} from "@welshman/store"
import {appContext} from "./context.js"
export const relaysByUrl = writable(new Map<string, RelayProfile>())
@@ -29,7 +28,7 @@ export const onRelay = (sub: (relay: RelayProfile) => void) => {
)
}
export const fetchRelayDirectly = async (url: string): Promise<Maybe<RelayProfile>> => {
export const fetchRelay = async (url: string): Promise<Maybe<RelayProfile>> => {
try {
const json = await fetchJson(url.replace(/^ws/, "http"), {
headers: {
@@ -55,39 +54,6 @@ export const fetchRelayDirectly = async (url: string): Promise<Maybe<RelayProfil
}
}
export const fetchRelayUsingProxy = batcher(800, async (urls: string[]) => {
// Handle a race condition edge case where dufflepud url changes under us
if (!appContext.dufflepudUrl) {
return urls.map(noop)
}
const res: any = await postJson(`${appContext.dufflepudUrl}/relay/info`, {urls})
const result = new Map<string, RelayProfile>()
for (const {url, info} of res?.data || []) {
if (info) {
result.set(url, {...info, url})
}
}
relaysByUrl.update($relaysByUrl => {
for (const [url, info] of result) {
$relaysByUrl.set(url, info)
}
return $relaysByUrl
})
for (const info of result.values()) {
notifyRelay(info)
}
return urls.map(url => result.get(url))
})
export const fetchRelay = (url: string) =>
appContext.dufflepudUrl ? fetchRelayUsingProxy(url) : fetchRelayDirectly(url)
export const forceLoadRelay = makeForceLoadItem(fetchRelay, getRelay)
export const loadRelay = makeLoadItem(fetchRelay, getRelay)