16 lines
374 B
TypeScript
16 lines
374 B
TypeScript
export default async function (
|
|
url: URL | RequestInfo,
|
|
request: RequestInit = {},
|
|
time: number = 5000,
|
|
): Promise<Response> {
|
|
const controller = new AbortController();
|
|
const timeout = setTimeout(() => controller.abort(), time);
|
|
|
|
request.signal ??= controller.signal;
|
|
|
|
try {
|
|
return await fetch(url, request);
|
|
} finally {
|
|
clearTimeout(timeout);
|
|
}
|
|
}
|