Files

26 lines
794 B
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.setConnectionTimeout = void 0;
const setConnectionTimeout = (request, reject, timeoutInMs = 0) => {
if (!timeoutInMs) {
return;
}
const timeoutId = setTimeout(() => {
request.destroy();
reject(Object.assign(new Error(`Socket timed out without establishing a connection within ${timeoutInMs} ms`), {
name: "TimeoutError",
}));
}, timeoutInMs);
request.on("socket", (socket) => {
if (socket.connecting) {
socket.on("connect", () => {
clearTimeout(timeoutId);
});
}
else {
clearTimeout(timeoutId);
}
});
};
exports.setConnectionTimeout = setConnectionTimeout;