UriData.fromUri 构造函数

UriData.fromUri(
  1. Uri uri
)

从具有 data 作为 Uri 方案的 Uri 创建一个 DataUri

uri 必须有方案 data,没有授权或片段,并且路径(如果有查询,则与查询连接)必须作为数据 URI 内容有效,其规则与 parse 相同。

实现

factory UriData.fromUri(Uri uri) {
  if (!uri.isScheme("data")) {
    throw ArgumentError.value(uri, "uri", "Scheme must be 'data'");
  }
  if (uri.hasAuthority) {
    throw ArgumentError.value(uri, "uri", "Data uri must not have authority");
  }
  if (uri.hasFragment) {
    throw 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.toString(), 5, uri);
}