Files
sendou.ink/apps/web-react/app/utils/fetch.ts

21 lines
488 B
TypeScript

import { logger } from "@sendou/utils/logger";
// https://stackoverflow.com/a/50101022
export async function fetchWithTimeout(
input: RequestInfo | URL,
init?: RequestInit | undefined,
timeout = 5000,
) {
const controller = new AbortController();
const timeoutId = setTimeout(() => {
controller.abort();
logger.error("Fetch timed out");
}, timeout);
const response = await fetch(input, { signal: controller.signal, ...init });
clearTimeout(timeoutId);
return response;
}