getRelayInfo method

Future<RelayInfo?> getRelayInfo(
  1. String url
)

fetches relay info once per relay for the lifetime of this manager; concurrent calls share the request and failures are not cached. Returns null when no RelayInfoRepo is configured

Implementation

Future<RelayInfo?> getRelayInfo(String url) async {
  final repo = _relayInfoRepo;
  if (repo == null) return null;
  final key = cleanRelayUrl(url) ?? url;
  final pending = _relayInfoCache[key];
  if (pending != null) return pending;
  final fetch = _relayInfoCache[key] = repo.getRelayInfo(key);
  RelayInfo? info;
  try {
    info = await fetch;
    return info;
  } finally {
    if (info == null) _relayInfoCache.remove(key);
  }
}