Map parseParameters(String requestPath)

Extracts route parameters from a given path.

Source

Map parseParameters(String requestPath) {
  Map result = {};

  Iterable<String> values = _parseParameters(requestPath);
  RegExp rgx = new RegExp(':([a-zA-Z_]+)');
  Iterable<Match> matches = rgx.allMatches(
      path.replaceAll(new RegExp('\/'), r'\/'));
  for (int i = 0; i < matches.length; i++) {
    Match match = matches.elementAt(i);
    String paramName = match.group(1);
    String value = values.elementAt(i);
    num numValue = num.parse(value, (_) => double.NAN);
    if (!numValue.isNaN)
      result[paramName] = numValue;
    else
      result[paramName] = value;
  }

  return result;
}