From d5215483b7db08dec6320bf8cf569c31a5adbc7c Mon Sep 17 00:00:00 2001 From: Bhanu Reddy Date: Wed, 4 Feb 2026 10:00:44 +0530 Subject: [PATCH] Replace optional chaining syntax for Node.js compatibility --- jfrog-tasks-utils/utils.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/jfrog-tasks-utils/utils.js b/jfrog-tasks-utils/utils.js index 7139999f..3eff82d3 100644 --- a/jfrog-tasks-utils/utils.js +++ b/jfrog-tasks-utils/utils.js @@ -31,14 +31,15 @@ function syncRequestWithRetry(method, url, options = {}, maxRetries = 3, retryDe try { const response = syncRequest(method, url, options); // Retry on 5xx server errors - if (response?.statusCode >= 500 && response?.statusCode < 600) { - console.warn(`Attempt ${attempt}/${maxRetries}: Server error ${response?.statusCode} for ${url}`); + const statusCode = response && response.statusCode; + if (statusCode >= 500 && statusCode < 600) { + console.warn(`Attempt ${attempt}/${maxRetries}: Server error ${statusCode} for ${url}`); lastResponse = response; } else { return response; } } catch (err) { - console.warn(`Attempt ${attempt}/${maxRetries}: Request failed for ${url} - ${err?.message}`); + console.warn(`Attempt ${attempt}/${maxRetries}: Request failed for ${url} - ${err && err.message}`); errorToThrow = err; } @@ -68,9 +69,9 @@ function isCliBinaryAvailable(version) { try { console.log('Verifying CLI binary availability at: ' + binaryUrl); const res = syncRequestWithRetry('HEAD', binaryUrl, { timeout: 5000 }); - return res?.statusCode === 200; + return res && res.statusCode === 200; } catch (err) { - console.warn('Failed to verify CLI binary availability: ' + err?.message); + console.warn('Failed to verify CLI binary availability: ' + (err && err.message)); return false; } } @@ -91,7 +92,7 @@ function fetchLatestCliVersion() { }); if (res.statusCode === 200) { const releases = JSON.parse(res.getBody('utf8')); - console.log('Fetched ' + releases?.length ?? 0 + ' JFrog CLI releases'); + console.log('Fetched ' + (releases && releases.length ? releases.length : 0) + ' JFrog CLI releases'); if (!releases || releases.length === 0) { console.warn('No JFrog CLI releases found, using fallback: ' + fallbackCliVersion); @@ -100,7 +101,7 @@ function fetchLatestCliVersion() { // Try each release until we find one with an available binary for (const release of releases) { - const version = release?.name; + const version = release && release.name; console.log('Checking CLI version: ' + version); if (version && isCliBinaryAvailable(version)) { @@ -114,7 +115,7 @@ function fetchLatestCliVersion() { } console.warn('Unexpected status code: ' + res.statusCode + ', using fallback version: ' + fallbackCliVersion); } catch (err) { - console.warn('Failed to fetch JFrog CLI releases, due to error: ' + err?.message + ', using fallback: ' + fallbackCliVersion); + console.warn('Failed to fetch JFrog CLI releases, due to error: ' + (err && err.message) + ', using fallback: ' + fallbackCliVersion); } return fallbackCliVersion; }