async function pingAllRegions()

in ext/js/service-worker.js [65:95]


async function pingAllRegions() {
  let regions = await getRegionsToPing();

  // fallback in case the regions have never been fetched
  if (!regions) {
    await fetchAndSaveEndpoints();
    regions = await getRegionsToPing();
  }

  const numRegions = Object.keys(regions).length;
  let counter = 1;
  const results = {};
  let fastestRegion;

  chrome.action.setBadgeText({ text: `0/${numRegions}` });

  for (const region of Object.values(regions)) {
    const ping = await pingSingleRegion(region["pingUrl"]);

    results[region["key"]] = ping;
    if (fastestRegion === undefined || ping < results[fastestRegion]) {
      fastestRegion = region["key"];
    }

    chrome.action.setBadgeText({ text: `${counter}/${numRegions}` });
    counter++;
  }

  chrome.action.setBadgeText({ text: "" });
  displayPingResults(fastestRegion, results[fastestRegion]);
}