source dump of claude code
at main 38 lines 1.0 kB view raw
1import { logForDebugging } from './debug.js' 2 3export type EnvVarValidationResult = { 4 effective: number 5 status: 'valid' | 'capped' | 'invalid' 6 message?: string 7} 8 9export function validateBoundedIntEnvVar( 10 name: string, 11 value: string | undefined, 12 defaultValue: number, 13 upperLimit: number, 14): EnvVarValidationResult { 15 if (!value) { 16 return { effective: defaultValue, status: 'valid' } 17 } 18 const parsed = parseInt(value, 10) 19 if (isNaN(parsed) || parsed <= 0) { 20 const result: EnvVarValidationResult = { 21 effective: defaultValue, 22 status: 'invalid', 23 message: `Invalid value "${value}" (using default: ${defaultValue})`, 24 } 25 logForDebugging(`${name} ${result.message}`) 26 return result 27 } 28 if (parsed > upperLimit) { 29 const result: EnvVarValidationResult = { 30 effective: upperLimit, 31 status: 'capped', 32 message: `Capped from ${parsed} to ${upperLimit}`, 33 } 34 logForDebugging(`${name} ${result.message}`) 35 return result 36 } 37 return { effective: parsed, status: 'valid' } 38}