nsite-ts/src/helpers/http.ts
2024-09-01 13:42:10 -05:00

21 lines
631 B
TypeScript

import { IncomingMessage } from "http";
import followRedirects from "follow-redirects";
const { http, https } = followRedirects;
export function makeRequestWithAbort(url: URL) {
return new Promise<{ response: IncomingMessage; controller: AbortController }>((res, rej) => {
const cancelController = new AbortController();
const request = (url.protocol === "https:" ? https : http).get(
url,
{
signal: cancelController.signal,
},
(response) => {
res({ response, controller: cancelController });
},
);
request.on("error", (err) => rej(err));
request.end();
});
}