init
This commit is contained in:
commit
ec53fcbe95
1905 changed files with 513762 additions and 0 deletions
38
utils/envValidation.ts
Normal file
38
utils/envValidation.ts
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
import { logForDebugging } from './debug.js'
|
||||
|
||||
export type EnvVarValidationResult = {
|
||||
effective: number
|
||||
status: 'valid' | 'capped' | 'invalid'
|
||||
message?: string
|
||||
}
|
||||
|
||||
export function validateBoundedIntEnvVar(
|
||||
name: string,
|
||||
value: string | undefined,
|
||||
defaultValue: number,
|
||||
upperLimit: number,
|
||||
): EnvVarValidationResult {
|
||||
if (!value) {
|
||||
return { effective: defaultValue, status: 'valid' }
|
||||
}
|
||||
const parsed = parseInt(value, 10)
|
||||
if (isNaN(parsed) || parsed <= 0) {
|
||||
const result: EnvVarValidationResult = {
|
||||
effective: defaultValue,
|
||||
status: 'invalid',
|
||||
message: `Invalid value "${value}" (using default: ${defaultValue})`,
|
||||
}
|
||||
logForDebugging(`${name} ${result.message}`)
|
||||
return result
|
||||
}
|
||||
if (parsed > upperLimit) {
|
||||
const result: EnvVarValidationResult = {
|
||||
effective: upperLimit,
|
||||
status: 'capped',
|
||||
message: `Capped from ${parsed} to ${upperLimit}`,
|
||||
}
|
||||
logForDebugging(`${name} ${result.message}`)
|
||||
return result
|
||||
}
|
||||
return { effective: parsed, status: 'valid' }
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue