UriData.fromUri constructor

UriData.fromUri(Uri uri)

Creates a DataUri from a Uri which must have data as Uri.scheme.

The uri must have scheme data and no authority or fragment, and the path (concatenated with the query, if there is one) must be valid as data URI content with the same rules as parse.

Implementation

factory UriData.fromUri(Uri uri) {
  if (uri.scheme != "data") {
    throw new ArgumentError.value(uri, "uri", "Scheme must be 'data'");
  }
  if (uri.hasAuthority) {
    throw new ArgumentError.value(
        uri, "uri", "Data uri must not have authority");
  }
  if (uri.hasFragment) {
    throw new ArgumentError.value(
        uri, "uri", "Data uri must not have a fragment part");
  }
  if (!uri.hasQuery) {
    return _parse(uri.path, 0, uri);
  }
  // Includes path and query (and leading "data:").
  return _parse("$uri", 5, uri);
}