21 lines
632 B
JavaScript
21 lines
632 B
JavaScript
export 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);
|
|
}
|
|
});
|
|
};
|