buildURLWithQueryParameters function
Builds an URL with Query parameters adding the map parameters to current
Query parameters.
removeFragment If true will remove URL fragment.
Implementation
String buildURLWithQueryParameters(
String url,
Map<String, String?> parameters, {
bool removeFragment = false,
}) {
if (parameters.isEmpty) return url;
var uri = Uri.parse(url);
// `Object?`: a `String`, a `List<String>` (a repeated parameter of [url])
// or `null` (a parameter without value).
Map<String, Object?> queryParameters;
if (uri.query.isEmpty) {
queryParameters = parameters;
} else {
queryParameters = Map<String, Object?>.from(_queryParametersOf(uri))
..addAll(parameters);
}
var fragment = uri.fragment;
return _uriWith(
uri,
queryParameters: queryParameters,
fragment: removeFragment || fragment.isEmpty ? null : fragment,
).toString();
}