| 1234567891011121314151617181920212223242526272829303132333435363738 |
- 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' }
- }
|