mirror of
https://github.com/hzrd149/nsite-gateway.git
synced 2025-06-23 20:05:03 +00:00
24 lines
680 B
TypeScript
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();
|
|
});
|
|
}
|