linkLocation function

String linkLocation(
  1. String routePath,
  2. Map<String, String> parameters
)

A router location: routePath, then parameters as a query with its keys sorted, so one link always yields one location.

Implementation

String linkLocation(String routePath, Map<String, String> parameters) {
  final path = routePath.isEmpty ? '/' : routePath;
  if (parameters.isEmpty) return path;
  final keys = parameters.keys.toList()..sort();
  final query = keys
      .map(
        (key) =>
            '${Uri.encodeQueryComponent(key)}='
            '${Uri.encodeQueryComponent(parameters[key]!)}',
      )
      .join('&');
  return '$path?$query';
}