nsite-ts/src/helpers/http.ts
2024-10-01 12:28:34 -05:00

24 lines
680 B
TypeScript

import { IncomingMessage } from "http";
import followRedirects from "follow-redirects";
const { http, https } = followRedirects;
import agent from "../proxy.js";
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,
agent,
},
(response) => {
res({ response, controller: cancelController });
},
);
request.on("error", (err) => rej(err));
request.end();
});
}