Roo-Code/src/api/providers/utils/timeout-config.ts

22 lines
818 B
TypeScript

import * as vscode from "vscode"
import { Package } from "../../../shared/package"
/**
* Gets the API request timeout from VSCode configuration with validation.
*
* @returns The timeout in milliseconds. Returns 0 for no timeout.
*/
export function getApiRequestTimeout(): number {
// Get timeout with validation to ensure it's a valid non-negative number
const configTimeout = vscode.workspace.getConfiguration(Package.name).get<number>("apiRequestTimeout", 600)
// Validate that it's actually a number and not NaN
if (typeof configTimeout !== "number" || isNaN(configTimeout)) {
return 600 * 1000 // Default to 600 seconds
}
// Allow 0 (no timeout) but clamp negative values to 0
const timeoutSeconds = configTimeout < 0 ? 0 : configTimeout
return timeoutSeconds * 1000 // Convert to milliseconds
}