{"ast":null,"code":"\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n\nvar _keys = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/object/keys\"));\n\nvar _defineProperty = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/object/define-property\"));\n\n(0, _defineProperty[\"default\"])(exports, \"__esModule\", {\n  value: true\n});\n\nfunction getRouteMatcher(routeRegex) {\n  var re = routeRegex.re,\n      groups = routeRegex.groups;\n  return function (pathname) {\n    var routeMatch = re.exec(pathname);\n\n    if (!routeMatch) {\n      return false;\n    }\n\n    var decode = function decode(param) {\n      try {\n        return decodeURIComponent(param);\n      } catch (_) {\n        var err = new Error('failed to decode param');\n        err.code = 'DECODE_FAILED';\n        throw err;\n      }\n    };\n\n    var params = {};\n    (0, _keys[\"default\"])(groups).forEach(function (slugName) {\n      var g = groups[slugName];\n      var m = routeMatch[g.pos];\n\n      if (m !== undefined) {\n        params[slugName] = ~m.indexOf('/') ? m.split('/').map(function (entry) {\n          return decode(entry);\n        }) : g.repeat ? [decode(m)] : decode(m);\n      }\n    });\n    return params;\n  };\n}\n\nexports.getRouteMatcher = getRouteMatcher;","map":null,"metadata":{},"sourceType":"script"}