#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));
}