UNPKG

feather-route-matcher

Version:
3 lines (2 loc) 964 B
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):(e=e||self).createMatcher=r()}(this,function(){"use strict";var i=/\((.*?)\)/g,o=/(\(\?)?:\w+/g,s=/[\-{}\[\]+?.,\\\^$|#\s]/g,l=/\*/g;return function(e){var r=Object.keys(e),f={};for(var n in e)f[n]={value:e[n]};return function(u){var c,p;return r.some(function(e){var r,n,t;(p=f[e]).regExp||(t=[],n=(n=e).replace(s,"\\$&").replace(i,"(?:$1)?").replace(o,function(e,r){return t.push(e.slice(1)),r?e:"([^/?]+)"}).replace(l,function(){return t.push("path"),"([^?]*?)"}),r={regExp:new RegExp("^"+n+"(?:\\?([\\s\\S]*))?$"),namedParams:t},p.regExp=r.regExp,p.namedParams=r.namedParams,p.pattern=e);var a=p.regExp.exec(u);if(a)return a=a.slice(1,-1),c=a.reduce(function(e,r,n){return r&&(e[p.namedParams[n]]=r),e},{}),!0})?{value:p.value,params:c,url:u,pattern:p.pattern}:null}}}); //# sourceMappingURL=feather-route-matcher.min.js.map