extractPathParams static method
Extracts dynamic path parameters from a route pattern
using the actual actual
path.
For example, pattern '/user/:id' and actual '/user/42' returns {'id': '42'}. Returns null if the actual path does not match the pattern.
Implementation
static Map<String, String>? extractPathParams(String pattern, String actual) {
final regExpPattern = pattern.replaceAllMapped(
RegExp(r':(\w+)'), (match) => '(?<${match[1]}>[\\w-]+)');
final regExp = RegExp('^$regExpPattern\$');
final match = regExp.firstMatch(actual);
if (match == null) return null;
return {for (var name in match.groupNames) name: match.namedGroup(name)!};
}