optionalUri method
Reads an optional URI environment variable, falling back to defaultValue.
If absent or blank, returns defaultValue (which defaults to null).
If present but cannot be parsed as a Uri, throws BloomEnvironmentException.
late final Uri? webhook = optionalUri('SLACK_WEBHOOK_URL');
Implementation
Uri? optionalUri(String key, {Uri? defaultValue, String? description}) {
final val = BloomEnv.getOrNull(key)?.trim();
if (val == null || val.isEmpty) {
return defaultValue;
}
final parsed = Uri.tryParse(val);
if (parsed == null) {
final err = 'Environment variable "$key" is not a valid URI: "$val".';
_validationErrors.add(err);
throw BloomEnvironmentException(err, errors: [err]);
}
return parsed;
}