{"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":{"version":3,"sources":["/Users/captainsafia/github.com/nteract/commuter/node_modules/next/dist/next-server/lib/router/utils/route-matcher.js"],"names":["exports","value","getRouteMatcher","routeRegex","re","groups","pathname","routeMatch","exec","decode","param","decodeURIComponent","_","err","Error","code","params","forEach","slugName","g","m","pos","undefined","indexOf","split","map","entry","repeat"],"mappings":"AAAA;;;;;;;;AACA,gCAAsBA,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;;AACA,SAASC,eAAT,CAAyBC,UAAzB,EAAqC;AAAA,MACzBC,EADyB,GACVD,UADU,CACzBC,EADyB;AAAA,MACrBC,MADqB,GACVF,UADU,CACrBE,MADqB;AAEjC,SAAO,UAACC,QAAD,EAAc;AACjB,QAAMC,UAAU,GAAGH,EAAE,CAACI,IAAH,CAAQF,QAAR,CAAnB;;AACA,QAAI,CAACC,UAAL,EAAiB;AACb,aAAO,KAAP;AACH;;AACD,QAAME,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD,EAAW;AACtB,UAAI;AACA,eAAOC,kBAAkB,CAACD,KAAD,CAAzB;AACH,OAFD,CAGA,OAAOE,CAAP,EAAU;AACN,YAAMC,GAAG,GAAG,IAAIC,KAAJ,CAAU,wBAAV,CAAZ;AACAD,QAAAA,GAAG,CAACE,IAAJ,GAAW,eAAX;AACA,cAAMF,GAAN;AACH;AACJ,KATD;;AAUA,QAAMG,MAAM,GAAG,EAAf;AACA,0BAAYX,MAAZ,EAAoBY,OAApB,CAA4B,UAACC,QAAD,EAAc;AACtC,UAAMC,CAAC,GAAGd,MAAM,CAACa,QAAD,CAAhB;AACA,UAAME,CAAC,GAAGb,UAAU,CAACY,CAAC,CAACE,GAAH,CAApB;;AACA,UAAID,CAAC,KAAKE,SAAV,EAAqB;AACjBN,QAAAA,MAAM,CAACE,QAAD,CAAN,GAAmB,CAACE,CAAC,CAACG,OAAF,CAAU,GAAV,CAAD,GACbH,CAAC,CAACI,KAAF,CAAQ,GAAR,EAAaC,GAAb,CAAiB,UAAAC,KAAK;AAAA,iBAAIjB,MAAM,CAACiB,KAAD,CAAV;AAAA,SAAtB,CADa,GAEbP,CAAC,CAACQ,MAAF,GACI,CAAClB,MAAM,CAACW,CAAD,CAAP,CADJ,GAEIX,MAAM,CAACW,CAAD,CAJhB;AAKH;AACJ,KAVD;AAWA,WAAOJ,MAAP;AACH,GA5BD;AA6BH;;AACDhB,OAAO,CAACE,eAAR,GAA0BA,eAA1B","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getRouteMatcher(routeRegex) {\n    const { re, groups } = routeRegex;\n    return (pathname) => {\n        const routeMatch = re.exec(pathname);\n        if (!routeMatch) {\n            return false;\n        }\n        const decode = (param) => {\n            try {\n                return decodeURIComponent(param);\n            }\n            catch (_) {\n                const err = new Error('failed to decode param');\n                err.code = 'DECODE_FAILED';\n                throw err;\n            }\n        };\n        const params = {};\n        Object.keys(groups).forEach((slugName) => {\n            const g = groups[slugName];\n            const m = routeMatch[g.pos];\n            if (m !== undefined) {\n                params[slugName] = ~m.indexOf('/')\n                    ? m.split('/').map(entry => decode(entry))\n                    : g.repeat\n                        ? [decode(m)]\n                        : decode(m);\n            }\n        });\n        return params;\n    };\n}\nexports.getRouteMatcher = getRouteMatcher;\n"]},"metadata":{},"sourceType":"script"}