path-params
Version:
Replace path params based on express route notation
4 lines (3 loc) • 1.34 kB
JavaScript
/*! path-params - MIT license - https://github.com/h2non/path-params */
(function(e,r){if(typeof define==="function"&&define.amd){define(["exports"],r)}else if(typeof exports==="object"){r(exports);if(typeof module==="object"&&module!==null){module.exports=exports=exports.pathParams}}else{r(e)}})(this,function(e){"use strict";var r=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^()])+)\\))?|\\(((?:\\\\.|[^()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function n(e,r){return t(e).reduce(function(e,n){if(e instanceof Error)return e;if(typeof n==="string")return e;var t=r[n.name];if(t==null){return new Error("Missing path param: "+n.name)}var a=typeof t;if(a!=="string"&&a!=="number"){return new Error("Invalid type for path param: "+n.name+" = "+a)}var i=new RegExp(":"+n.name,"g");return e.replace(i,t)},e)}function t(e){var n=[];var t=0;var a=0;var i="";var o;while((o=r.exec(e))!=null){var f=o[0];var p=o[1];var u=o.index;i+=e.slice(a,u);a=u+f.length;if(p){i+=p[1];continue}if(i){n.push(i);i=""}var s=o[2];var l=o[3];var v=o[6];var c=v==="+"||v==="*";var m=v==="?"||v==="*";var d=s||"/";n.push({name:l||t++,prefix:s||"",delimiter:d,optional:m,repeat:c})}if(a<e.length){i+=e.substr(a)}if(i){n.push(i)}return n}e.pathParams=n});
//# sourceMappingURL=http://cdn.rawgit.com/h2non/path-params.js/0.1.0/path-params.min.js.map