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