dvRouteParams function
The path's parameters under pattern, or null when it does not match.
Implementation
Map<String, String>? dvRouteParams(String pattern, String path) {
if (pattern == path) return const <String, String>{};
if (!pattern.contains(':')) return null;
final List<String> patternParts = pattern.split('/');
final List<String> pathParts = path.split('/');
if (patternParts.length != pathParts.length) return null;
final Map<String, String> params = <String, String>{};
for (var i = 0; i < patternParts.length; i++) {
final String segment = patternParts[i];
if (segment.startsWith(':')) {
params[segment.substring(1)] = Uri.decodeComponent(pathParts[i]);
} else if (segment != pathParts[i]) {
return null;
}
}
return params;
}