1const servingCacheH: Record<string, {serving: boolean, ts: number}> = {} 2const servingCacheTtlMs = 60_000 3const probeTimeoutMs = 3_000 5export const isRegcacheServing = async (cacheHost: string): Promise<boolean> => { 6 const cached = servingCacheH[cacheHost] 7 if (cached && Date.now() - cached.ts < servingCacheTtlMs) return cached.serving 10 const resp = await fetch(`https://${cacheHost}/v2/`, {signal: AbortSignal.timeout(probeTimeoutMs)}) 11 serving = resp.status === 200 || resp.status === 401 12 } catch {} // catch:userapproved — probe failure means not serving 13 servingCacheH[cacheHost] = {serving, ts: Date.now()}