• #Resilience: Timeout

    Usually for SSR. Fail after a timeout, to prevent blocking finalising for to long.

    function prefetchWithTimeout(url: string, timeout = 300) {
      const controller = new AbortController();
      const timer = setTimeout(() => controller.abort(), timeout);
    
      return fetch(url, { signal: controller.signal })
        .finally(() => clearTimeout(timer));
    }