letUriOrNone function

Option<Uri> letUriOrNone(
  1. dynamic input
)

Converts input to Uri, returning None on failure.

Supported types:

Implementation

Option<Uri> letUriOrNone(dynamic input) {
  if (input is Outcome) {
    return switch (input.rawSync().value) {
      Ok(value: final okValue) => letUriOrNone(NoStackOverflowWrapper(okValue)),
      Err() => const None(),
    };
  }
  return switch (input is NoStackOverflowWrapper ? input.value : input) {
    final Uri value => Some(value),
    final String string => Option.from(Uri.tryParse(string.trim())),
    _ => const None(),
  };
}