yaejunyang/packages/utils/fetch.ts
2026-02-09 18:31:56 +00:00

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