matchPath method
Matches a request path against the route path pattern.
Implementation
Map<String, String>? matchPath(String requestPath) {
final normalized = _normalizeRequestPath(requestPath);
final requestSegments = _splitPath(normalized);
if (_pathSegments.length != requestSegments.length) {
return null;
}
final parameters = <String, String>{};
for (var index = 0; index < _pathSegments.length; index++) {
final routeSegment = _pathSegments[index];
final requestSegment = requestSegments[index];
if (routeSegment.startsWith(':')) {
final parameterName = routeSegment.substring(1);
if (parameterName.isEmpty) {
return null;
}
parameters[parameterName] = Uri.decodeComponent(requestSegment);
continue;
}
if (routeSegment != requestSegment) {
return null;
}
}
return parameters;
}