validateBoundedIntEnvVar function

EnvVarValidationResult validateBoundedIntEnvVar({
  1. required String name,
  2. required String? value,
  3. required int defaultValue,
  4. required int upperLimit,
})

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,
  );
}