optionalUri method

Uri? optionalUri(
  1. String key, {
  2. Uri? defaultValue,
  3. String? description,
})

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