resolveRoutePath function
Builds a concrete URL from a route template (1.5.0).
pathParamsvalues replace:paramsegments. Pattern (:id(\d+)), optional (:id?) and wildcard (:path*) markers are stripped from the parameter name before lookup. Values are encoded per-segment (a literal/inside a value becomes%2F).queryParamsare merged into the query string, preserving any query already present inpage.
When pathParams is supplied, required parameters without a value are
left as-is. Optional parameters without a value are omitted, together
with their '/' or '.' separator.
Implementation
String resolveRoutePath(
String page, {
Map<String, String>? pathParams,
Map<String, String>? queryParams,
}) {
var resolved = page;
if (pathParams != null) {
resolved = RouteTemplate.parse(page).resolve(pathParams);
}
if (queryParams != null && queryParams.isNotEmpty) {
final uri = Uri.parse(resolved);
resolved = uri.replace(queryParameters: {
...uri.queryParameters,
...queryParams,
}).toString();
}
return resolved;
}