Better error handling and extract validation logic to a re-usable function.

This commit is contained in:
Sander Declerck 2025-11-03 14:54:42 +01:00
parent 1e7cd74364
commit 8c872b3861
No known key found for this signature in database

View file

@ -18,15 +18,15 @@ export function getScanTimeout() {
const config = readConfigFile();
if (process.env.AIKIDO_SCAN_TIMEOUT_MS) {
const scanTimeout = Number(process.env.AIKIDO_SCAN_TIMEOUT_MS);
if (!Number.isNaN(scanTimeout) && scanTimeout > 0) {
const scanTimeout = validateTimeout(process.env.AIKIDO_SCAN_TIMEOUT_MS);
if (scanTimeout != null) {
return scanTimeout;
}
}
if (config.scanTimeout) {
const scanTimeout = Number(config.scanTimeout);
if (!Number.isNaN(scanTimeout) && scanTimeout > 0) {
const scanTimeout = validateTimeout(config.scanTimeout);
if (scanTimeout != null) {
return scanTimeout;
}
}
@ -34,6 +34,19 @@ export function getScanTimeout() {
return 10000; // Default to 10 seconds
}
/**
*
* @param {any} value
* @returns {number?}
*/
function validateTimeout(value) {
const timeout = Number(value);
if (!Number.isNaN(timeout) && timeout > 0) {
return timeout;
}
return null;
}
/**
* @param {import("../api/aikido.js").MalwarePackage[]} data
* @param {string | number} version
@ -100,8 +113,14 @@ function readConfigFile() {
};
}
const data = fs.readFileSync(configFilePath, "utf8");
return JSON.parse(data);
try {
const data = fs.readFileSync(configFilePath, "utf8");
return JSON.parse(data);
} catch {
return {
scanTimeout: undefined,
};
}
}
/**