validateBoundedIntEnvVar function
Validate and clamp an integer env var within 1 .. upperLimit.
Returns the default when the value is absent or non-positive.
Implementation
EnvVarValidationResult validateBoundedIntEnvVar({
required String name,
required String? value,
required int defaultValue,
required int upperLimit,
}) {
if (value == null || value.isEmpty) {
return EnvVarValidationResult(
effective: defaultValue,
status: EnvVarValidationStatus.valid,
);
}
final parsed = int.tryParse(value);
if (parsed == null || parsed <= 0) {
final msg = 'Invalid value "$value" (using default: $defaultValue)';
return EnvVarValidationResult(
effective: defaultValue,
status: EnvVarValidationStatus.invalid,
message: msg,
);
}
if (parsed > upperLimit) {
final msg = 'Capped from $parsed to $upperLimit';
return EnvVarValidationResult(
effective: upperLimit,
status: EnvVarValidationStatus.capped,
message: msg,
);
}
return EnvVarValidationResult(
effective: parsed,
status: EnvVarValidationStatus.valid,
);
}