22 lines
888 B
JavaScript
22 lines
888 B
JavaScript
import { timing } from "./timing";
|
|
export const setRequestTimeout = (req, reject, timeoutInMs = 0, throwOnRequestTimeout, logger) => {
|
|
if (timeoutInMs) {
|
|
return timing.setTimeout(() => {
|
|
let msg = `@smithy/node-http-handler - [${throwOnRequestTimeout ? "ERROR" : "WARN"}] a request has exceeded the configured ${timeoutInMs} ms requestTimeout.`;
|
|
if (throwOnRequestTimeout) {
|
|
const error = Object.assign(new Error(msg), {
|
|
name: "TimeoutError",
|
|
code: "ETIMEDOUT",
|
|
});
|
|
req.destroy(error);
|
|
reject(error);
|
|
}
|
|
else {
|
|
msg += ` Init client requestHandler with throwOnRequestTimeout=true to turn this into an error.`;
|
|
logger?.warn?.(msg);
|
|
}
|
|
}, timeoutInMs);
|
|
}
|
|
return -1;
|
|
};
|