15 lines
No EOL
533 B
TypeScript
15 lines
No EOL
533 B
TypeScript
import { Response as NodeFetchResponse, RequestInit, RequestInfo } from "node-fetch";
|
|
import defaultFetch from "node-fetch";
|
|
|
|
export default async function(url: URL | RequestInfo, request: RequestInit={}, time: number=5000): Promise<NodeFetchResponse | Response> {
|
|
const controller = new AbortController();
|
|
const timeout = setTimeout(() => controller.abort(), time);
|
|
|
|
request.signal ??= controller.signal;
|
|
|
|
try {
|
|
return await defaultFetch(url, request);;
|
|
} finally {
|
|
clearTimeout(timeout);
|
|
}
|
|
} |