withGeneratedRouteUriExtras<T extends Object> function

T withGeneratedRouteUriExtras<T extends Object>(
  1. T route,
  2. Uri uri,
  3. Set<String> knownQueryParameters
)

Stores unknown query parameters and fragments on a parsed generated route.

Implementation

T withGeneratedRouteUriExtras<T extends Object>(
  T route,
  Uri uri,
  Set<String> knownQueryParameters,
) {
  final queryParameters = <String, List<String>>{};
  for (final entry in uri.queryParametersAll.entries) {
    if (!knownQueryParameters.contains(entry.key)) {
      queryParameters[entry.key] = List.unmodifiable(entry.value);
    }
  }
  if (queryParameters.isEmpty && uri.fragment.isEmpty) return route;
  _generatedRouteUriExtras[route] = GeneratedRouteUriExtras(
    queryParameters: Map.unmodifiable(queryParameters),
    fragment: uri.fragment,
  );
  return route;
}