uriWithQueryParams function

Uri uriWithQueryParams(
  1. Uri uri,
  2. Map<String, String> add, {
  3. Set<String>? remove,
})

Add/remove query params (immutable). Roadmap #169.

Implementation

Uri uriWithQueryParams(Uri uri, Map<String, String> add, {Set<String>? remove}) {
  final Map<String, String> params = Map<String, String>.from(uri.queryParameters);
  if (remove != null) {
    for (final String k in remove) {
      params.remove(k);
    }
  }
  // ignore: saropa_lints/prefer_spread_over_addall -- params is mutated by the removal loop above; not a one-shot literal construction
  params.addAll(add);
  return uri.replace(query: buildQueryString(params));
}