optionalBool method
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]);
}