optionalBool method

bool optionalBool(
  1. String key, {
  2. bool defaultValue = false,
  3. String? description,
})

Reads an optional boolean environment variable with default fallback.

Case-insensitively parses "true", "1", "yes" as true, and "false", "0", "no" as false. If the variable is absent or blank, returns defaultValue (defaults to false). If present but unrecognized, throws BloomEnvironmentException.

late final bool analyticsEnabled = optionalBool('ENABLE_ANALYTICS', defaultValue: true);

Implementation

bool optionalBool(String key,
    {bool defaultValue = false, String? description}) {
  final val = BloomEnv.getOrNull(key)?.trim();
  if (val == null || val.isEmpty) {
    return defaultValue;
  }
  final lower = val.toLowerCase();
  if (lower == 'true' || lower == '1' || lower == 'yes') return true;
  if (lower == 'false' || lower == '0' || lower == 'no') return false;

  final err =
      'Environment variable "$key" is not a valid boolean: "$val".';
  _validationErrors.add(err);
  throw BloomEnvironmentException(err, errors: [err]);
}