feat: add redirect and timeout in request settings (#5672)

* feat: add redirect and timeout in request settings
This commit is contained in:
Pooja
2025-10-08 20:00:37 +05:30
committed by GitHub
parent ce40949564
commit 0c30357b01
29 changed files with 898 additions and 56 deletions

View File

@@ -346,14 +346,24 @@ const runSingleRequest = async function (
}
}
let requestMaxRedirects = request.maxRedirects
request.maxRedirects = 0
// Set default value for requestMaxRedirects if not explicitly set
if (requestMaxRedirects === undefined) {
// Get followRedirects setting, default to true for backward compatibility
const followRedirects = request.settings?.followRedirects ?? true;
// Get maxRedirects from request settings, fallback to request.maxRedirects, then default to 5
let requestMaxRedirects = request.settings?.maxRedirects ?? request.maxRedirects ?? 5;
// Ensure it's a valid number
if (typeof requestMaxRedirects !== 'number' || requestMaxRedirects < 0) {
requestMaxRedirects = 5; // Default to 5 redirects
}
// If followRedirects is disabled, set maxRedirects to 0 to disable all redirects
if (!followRedirects) {
requestMaxRedirects = 0;
}
request.maxRedirects = 0;
// Handle OAuth2 authentication
if (request.oauth2) {
try {
@@ -384,12 +394,22 @@ const runSingleRequest = async function (
let response, responseTime;
try {
let axiosInstance = makeAxiosInstance({ requestMaxRedirects: requestMaxRedirects, disableCookies: options.disableCookies });
// Set timeout from request settings, default to 0 (no timeout)
const requestTimeout = request.settings?.timeout || 0;
if (requestTimeout > 0) {
request.timeout = requestTimeout;
}
let axiosInstance = makeAxiosInstance({
requestMaxRedirects: requestMaxRedirects,
disableCookies: options.disableCookies
});
if (request.ntlmConfig) {
axiosInstance=NtlmClient(request.ntlmConfig,axiosInstance.defaults)
delete request.ntlmConfig;
}
if (request.awsv4config) {
// todo: make this happen in prepare-request.js