route-helpers-generator 1.0.3 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,6 +9,7 @@ Create methods to easily generate paths and url
9
9
  * path-to-regexp - ^2.1.0
10
10
  * qs - ^6.5.1
11
11
  * cli-table - ^0.3.1
12
+ * randexp - ^0.5.3
12
13
  * url
13
14
 
14
15
  ## Install
@@ -12,19 +12,17 @@ var _qs2 = _interopRequireDefault(_qs);
12
12
 
13
13
  var _pathToRegexp = require('path-to-regexp');
14
14
 
15
- var _url = require('url');
16
-
17
- var _url2 = _interopRequireDefault(_url);
18
-
19
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
16
 
21
17
  function _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }
22
18
 
19
+ var URL = typeof window === 'undefined' || window.URL.parse === undefined ? require('url') : window.URL;
20
+
23
21
  var generateMatch = function generateMatch(path) {
24
22
  var keys = [];
25
23
  var regexp = (0, _pathToRegexp.pathToRegexp)(path, keys);
26
24
  return function (url) {
27
- url = _url2.default.parse(url);
25
+ url = URL.parse(url);
28
26
  var formatMatch = url.pathname.match(/\.([^.]+)$/);
29
27
  var format = formatMatch && formatMatch[1];
30
28
  var match = regexp.exec(url.pathname.replace(/\.[^.]+$/, ''));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/generateMatch.js"],"names":["generateMatch","path","keys","regexp","url","Url","parse","formatMatch","pathname","match","format","exec","replace","values","params","reduce","memo","key","index","name","hash","query","qs"],"mappings":";;;;;;;;AAAA;;;;AACA;;AACA;;;;;;;;AAEA,IAAMA,gBAAgB,SAAhBA,aAAgB,CAACC,IAAD,EAAU;AAC/B,KAAIC,OAAO,EAAX;AACA,KAAMC,SAAS,gCAAaF,IAAb,EAAmBC,IAAnB,CAAf;AACA,QAAO,UAACE,GAAD,EAAS;AACfA,QAAMC,cAAIC,KAAJ,CAAUF,GAAV,CAAN;AACA,MAAMG,cAAcH,IAAII,QAAJ,CAAaC,KAAb,CAAmB,YAAnB,CAApB;AACA,MAAMC,SAASH,eAAeA,YAAY,CAAZ,CAA9B;AACA,MAAME,QAAQN,OAAOQ,IAAP,CAAYP,IAAII,QAAJ,CAAaI,OAAb,CAAqB,UAArB,EAAiC,EAAjC,CAAZ,CAAd;AACA,MAAI,CAACH,KAAL,EAAY;AACX,UAAO,IAAP;AACA;;AAPc,wBAQOA,KARP;AAAA,MAQHI,MARG;;AASf,MAAIC,SAASZ,KAAKa,MAAL,CAAY,UAACC,IAAD,EAAOC,GAAP,EAAYC,KAAZ,EAAsB;AAC9CF,QAAKC,IAAIE,IAAT,IAAiBN,OAAOK,KAAP,CAAjB;AACA,UAAOF,IAAP;AACA,GAHY,EAGV,EAHU,CAAb;AAIAZ,MAAIgB,IAAJ,KAAaN,OAAOM,IAAP,GAAchB,IAAIgB,IAAJ,CAASR,OAAT,CAAiB,IAAjB,EAAuB,EAAvB,CAA3B;AACAR,MAAIiB,KAAJ,KAAcP,sBAAaA,MAAb,EAAwBQ,aAAGhB,KAAH,CAASF,IAAIiB,KAAb,CAAxB,CAAd;AACAX,aAAWI,OAAOJ,MAAP,GAAgBA,MAA3B;AACA,SAAOI,MAAP;AACA,EAjBD;AAkBA,CArBD;;kBAuBed,a","file":"generateMatch.js","sourcesContent":["import qs from 'qs'\nimport {pathToRegexp} from 'path-to-regexp'\nimport Url from 'url'\n\nconst generateMatch = (path) => {\n\tlet keys = [];\n\tconst regexp = pathToRegexp(path, keys);\n\treturn (url) => {\n\t\turl = Url.parse(url);\n\t\tconst formatMatch = url.pathname.match(/\\.([^.]+)$/);\n\t\tconst format = formatMatch && formatMatch[1];\n\t\tconst match = regexp.exec(url.pathname.replace(/\\.[^.]+$/, ''));\n\t\tif (!match) {\n\t\t\treturn null;\n\t\t}\n\t\tconst [, ...values] = match;\n\t\tlet params = keys.reduce((memo, key, index) => {\n\t\t\tmemo[key.name] = values[index];\n\t\t\treturn memo;\n\t\t}, {});\n\t\turl.hash && (params.hash = url.hash.replace(/^#/, ''));\n\t\turl.query && (params = {...params, ...qs.parse(url.query)});\n\t\tformat && (params.format = format);\n\t\treturn params;\n\t};\n};\n\nexport default generateMatch;\n"]}
1
+ {"version":3,"sources":["../src/generateMatch.js"],"names":["URL","window","parse","undefined","require","generateMatch","path","keys","regexp","url","formatMatch","pathname","match","format","exec","replace","values","params","reduce","memo","key","index","name","hash","query"],"mappings":";;;;;;;;AAAA;;;;AACA;;;;;;AACA,IAAMA,MAAM,OAAOC,MAAP,KAAkB,WAAlB,IAAiCA,OAAOD,GAAP,CAAWE,KAAX,KAAqBC,SAAtD,GAAkEC,QAAQ,KAAR,CAAlE,GAAmFH,OAAOD,GAAtG;;AAEA,IAAMK,gBAAgB,SAAhBA,aAAgB,CAACC,IAAD,EAAU;AAC/B,KAAIC,OAAO,EAAX;AACA,KAAMC,SAAS,gCAAaF,IAAb,EAAmBC,IAAnB,CAAf;AACA,QAAO,UAACE,GAAD,EAAS;AACfA,QAAMT,IAAIE,KAAJ,CAAUO,GAAV,CAAN;AACA,MAAMC,cAAcD,IAAIE,QAAJ,CAAaC,KAAb,CAAmB,YAAnB,CAApB;AACA,MAAMC,SAASH,eAAeA,YAAY,CAAZ,CAA9B;AACA,MAAME,QAAQJ,OAAOM,IAAP,CAAYL,IAAIE,QAAJ,CAAaI,OAAb,CAAqB,UAArB,EAAiC,EAAjC,CAAZ,CAAd;AACA,MAAI,CAACH,KAAL,EAAY;AACX,UAAO,IAAP;AACA;;AAPc,wBAQOA,KARP;AAAA,MAQHI,MARG;;AASf,MAAIC,SAASV,KAAKW,MAAL,CAAY,UAACC,IAAD,EAAOC,GAAP,EAAYC,KAAZ,EAAsB;AAC9CF,QAAKC,IAAIE,IAAT,IAAiBN,OAAOK,KAAP,CAAjB;AACA,UAAOF,IAAP;AACA,GAHY,EAGV,EAHU,CAAb;AAIAV,MAAIc,IAAJ,KAAaN,OAAOM,IAAP,GAAcd,IAAIc,IAAJ,CAASR,OAAT,CAAiB,IAAjB,EAAuB,EAAvB,CAA3B;AACAN,MAAIe,KAAJ,KAAcP,sBAAaA,MAAb,EAAwB,aAAGf,KAAH,CAASO,IAAIe,KAAb,CAAxB,CAAd;AACAX,aAAWI,OAAOJ,MAAP,GAAgBA,MAA3B;AACA,SAAOI,MAAP;AACA,EAjBD;AAkBA,CArBD;;kBAuBeZ,a","file":"generateMatch.js","sourcesContent":["import qs from 'qs'\nimport {pathToRegexp} from 'path-to-regexp'\nconst URL = typeof window === 'undefined' || window.URL.parse === undefined ? require('url') : window.URL\n\nconst generateMatch = (path) => {\n\tlet keys = [];\n\tconst regexp = pathToRegexp(path, keys);\n\treturn (url) => {\n\t\turl = URL.parse(url);\n\t\tconst formatMatch = url.pathname.match(/\\.([^.]+)$/);\n\t\tconst format = formatMatch && formatMatch[1];\n\t\tconst match = regexp.exec(url.pathname.replace(/\\.[^.]+$/, ''));\n\t\tif (!match) {\n\t\t\treturn null;\n\t\t}\n\t\tconst [, ...values] = match;\n\t\tlet params = keys.reduce((memo, key, index) => {\n\t\t\tmemo[key.name] = values[index];\n\t\t\treturn memo;\n\t\t}, {});\n\t\turl.hash && (params.hash = url.hash.replace(/^#/, ''));\n\t\turl.query && (params = {...params, ...qs.parse(url.query)});\n\t\tformat && (params.format = format);\n\t\treturn params;\n\t};\n};\n\nexport default generateMatch;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/generatePathMethod.js"],"names":["generatePathMethod","path","tokens","tokenNames","map","token","name","filter","pathFunc","data","options","queryValues","Object","keys","forEach","key","findIndex","tokenName","query","qs","stringify","arrayFormat","hash","format"],"mappings":";;;;;;AAAA;;;;AACA;;;;AAEA,IAAMA,qBAAqB,SAArBA,kBAAqB,CAACC,IAAD,EAAU;AACpC,KAAMC,SAAS,yBAAMD,IAAN,CAAf;AACA,KAAME,aAAaD,OAAOE,GAAP,CAAW,UAACC,KAAD;AAAA,SAAW,OAAOA,KAAP,KAAiB,QAAjB,GAA4B,IAA5B,GAAmCA,MAAMC,IAApD;AAAA,EAAX,EAAqEC,MAArE,CAA4E,UAACF,KAAD;AAAA,SAAWA,KAAX;AAAA,EAA5E,CAAnB;AACA,KAAMG,WAAW,oCAAiBN,MAAjB,CAAjB;AACA,QAAO,CAACC,UAAD,EAAa,UAACM,IAAD,EAAOC,OAAP,EAAmB;AACtC,MAAIC,cAAc,EAAlB;AACAC,SAAOC,IAAP,CAAYJ,QAAQ,EAApB,EAAwBK,OAAxB,CAAgC,UAACC,GAAD,EAAS;AACxCZ,cAAWa,SAAX,CAAqB,UAACC,SAAD;AAAA,WAAeA,cAAcF,GAA7B;AAAA,IAArB,MAA2D,CAAC,CAA5D,IACAA,QAAQ,MADR,IAEAA,QAAQ,QAFR,KAGCJ,YAAYI,GAAZ,IAAmBN,KAAKM,GAAL,CAHpB;AAIA,GALD;AAMA,MAAMd,OAAOO,SAASC,IAAT,EAAeC,OAAf,CAAb;AACA,MAAMQ,QAAQC,aAAGC,SAAH,CAAaT,WAAb,EAA0B,EAAEU,aAAa,UAAf,EAA1B,CAAd;AACA,MAAMC,OAAO,CAACb,QAAQ,EAAT,EAAaa,IAAb,IAAqB,EAAlC;AACA,MAAMC,SAAS,CAACd,QAAQ,EAAT,EAAac,MAAb,IAAuB,EAAtC;AACA,cAAUtB,IAAV,IAAiBsB,gBAAcA,MAA/B,KAA0CL,SAAS,GAAnD,IAAyDA,KAAzD,IAAiEI,QAAQ,GAAzE,IAA+EA,IAA/E;AACA,EAbM,CAAP;AAcA,CAlBD;;kBAoBetB,kB","file":"generatePathMethod.js","sourcesContent":["import qs from 'qs'\nimport {parse, tokensToFunction} from 'path-to-regexp'\n\nconst generatePathMethod = (path) => {\n\tconst tokens = parse(path);\n\tconst tokenNames = tokens.map((token) => typeof token === 'string' ? null : token.name).filter((token) => token);\n\tconst pathFunc = tokensToFunction(tokens);\n\treturn [tokenNames, (data, options) => {\n\t\tlet queryValues = {};\n\t\tObject.keys(data || {}).forEach((key) => {\n\t\t\ttokenNames.findIndex((tokenName) => tokenName === key) === -1 &&\n\t\t\tkey !== 'hash' &&\n\t\t\tkey !== 'format' &&\n\t\t\t(queryValues[key] = data[key]);\n\t\t});\n\t\tconst path = pathFunc(data, options);\n\t\tconst query = qs.stringify(queryValues, { arrayFormat: 'brackets' });\n\t\tconst hash = (data || {}).hash || '';\n\t\tconst format = (data || {}).format || '';\n\t\treturn `${path}${format && `.${format}`}${query && '?'}${query}${hash && '#'}${hash}`;\n\t}];\n};\n\nexport default generatePathMethod;\n"]}
1
+ {"version":3,"sources":["../src/generatePathMethod.js"],"names":["generatePathMethod","path","tokens","tokenNames","map","token","name","filter","pathFunc","data","options","queryValues","Object","keys","forEach","key","findIndex","tokenName","query","stringify","arrayFormat","hash","format"],"mappings":";;;;;;AAAA;;;;AACA;;;;AAEA,IAAMA,qBAAqB,SAArBA,kBAAqB,CAACC,IAAD,EAAU;AACpC,KAAMC,SAAS,yBAAMD,IAAN,CAAf;AACA,KAAME,aAAaD,OAAOE,GAAP,CAAW,UAACC,KAAD;AAAA,SAAW,OAAOA,KAAP,KAAiB,QAAjB,GAA4B,IAA5B,GAAmCA,MAAMC,IAApD;AAAA,EAAX,EAAqEC,MAArE,CAA4E,UAACF,KAAD;AAAA,SAAWA,KAAX;AAAA,EAA5E,CAAnB;AACA,KAAMG,WAAW,oCAAiBN,MAAjB,CAAjB;AACA,QAAO,CAACC,UAAD,EAAa,UAACM,IAAD,EAAOC,OAAP,EAAmB;AACtC,MAAIC,cAAc,EAAlB;AACAC,SAAOC,IAAP,CAAYJ,QAAQ,EAApB,EAAwBK,OAAxB,CAAgC,UAACC,GAAD,EAAS;AACxCZ,cAAWa,SAAX,CAAqB,UAACC,SAAD;AAAA,WAAeA,cAAcF,GAA7B;AAAA,IAArB,MAA2D,CAAC,CAA5D,IACAA,QAAQ,MADR,IAEAA,QAAQ,QAFR,KAGCJ,YAAYI,GAAZ,IAAmBN,KAAKM,GAAL,CAHpB;AAIA,GALD;AAMA,MAAMd,OAAOO,SAASC,IAAT,EAAeC,OAAf,CAAb;AACA,MAAMQ,QAAQ,aAAGC,SAAH,CAAaR,WAAb,EAA0B,EAAES,aAAa,UAAf,EAA1B,CAAd;AACA,MAAMC,OAAO,CAACZ,QAAQ,EAAT,EAAaY,IAAb,IAAqB,EAAlC;AACA,MAAMC,SAAS,CAACb,QAAQ,EAAT,EAAaa,MAAb,IAAuB,EAAtC;AACA,cAAUrB,IAAV,IAAiBqB,gBAAcA,MAA/B,KAA0CJ,SAAS,GAAnD,IAAyDA,KAAzD,IAAiEG,QAAQ,GAAzE,IAA+EA,IAA/E;AACA,EAbM,CAAP;AAcA,CAlBD;;kBAoBerB,kB","file":"generatePathMethod.js","sourcesContent":["import qs from 'qs'\nimport {parse, tokensToFunction} from 'path-to-regexp'\n\nconst generatePathMethod = (path) => {\n\tconst tokens = parse(path);\n\tconst tokenNames = tokens.map((token) => typeof token === 'string' ? null : token.name).filter((token) => token);\n\tconst pathFunc = tokensToFunction(tokens);\n\treturn [tokenNames, (data, options) => {\n\t\tlet queryValues = {};\n\t\tObject.keys(data || {}).forEach((key) => {\n\t\t\ttokenNames.findIndex((tokenName) => tokenName === key) === -1 &&\n\t\t\tkey !== 'hash' &&\n\t\t\tkey !== 'format' &&\n\t\t\t(queryValues[key] = data[key]);\n\t\t});\n\t\tconst path = pathFunc(data, options);\n\t\tconst query = qs.stringify(queryValues, { arrayFormat: 'brackets' });\n\t\tconst hash = (data || {}).hash || '';\n\t\tconst format = (data || {}).format || '';\n\t\treturn `${path}${format && `.${format}`}${query && '?'}${query}${hash && '#'}${hash}`;\n\t}];\n};\n\nexport default generatePathMethod;\n"]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["default","routesHelper"],"mappings":";;;;;;;;;;;;kDAAQA,O;;;;;;;;;uDACAA,O;;;;;;;;;sDACAA,O;;;;;;;;;iDACAA,O;;;;;;;;kBAEOC,sB","file":"index.js","sourcesContent":["export {default as generateMatch} from './generateMatch'\nexport {default as generatePathMethod} from './generatePathMethod'\nexport {default as generateUrlMethod} from './generateUrlMethod'\nexport {default as routesHelper} from './routesHelper'\nimport routesHelper from './routesHelper'\nexport default routesHelper;\n"]}
1
+ {"version":3,"sources":["../src/index.js"],"names":["default"],"mappings":";;;;;;;;;;;;kDAAQA,O;;;;;;;;;uDACAA,O;;;;;;;;;sDACAA,O;;;;;;;;;iDACAA,O","file":"index.js","sourcesContent":["export {default as generateMatch} from './generateMatch'\nexport {default as generatePathMethod} from './generatePathMethod'\nexport {default as generateUrlMethod} from './generateUrlMethod'\nexport {default as routesHelper} from './routesHelper'\nimport routesHelper from './routesHelper'\nexport default routesHelper;\n"]}
@@ -109,6 +109,9 @@ var RoutesHelper = function () {
109
109
  var method = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : console.log;
110
110
 
111
111
  var Table = require('cli-table');
112
+ var randexp = require('randexp').randexp;
113
+ var parse = require('path-to-regexp').parse;
114
+
112
115
  var table = new Table({
113
116
  chars: { 'top': '', 'top-mid': '', 'top-left': '', 'top-right': '',
114
117
  'bottom': '', 'bottom-mid': '', 'bottom-left': '', 'bottom-right': '',
@@ -119,8 +122,12 @@ var RoutesHelper = function () {
119
122
  head: ['Method', 'Result']
120
123
  });
121
124
  this.routes.forEach(function (key) {
125
+ var tokens = parse(_this2[key + 'Regexp']()).filter(function (token) {
126
+ return typeof token !== 'string';
127
+ });
122
128
  var params = _this2[key + 'Tokens'].reduce(function (memo, name, index) {
123
129
  memo[name] = index + 1;
130
+ !memo[name].toString().match(tokens[index].pattern) && (memo[name] = randexp(tokens[index].pattern));
124
131
  return memo;
125
132
  }, {});
126
133
  var path = _this2[key + 'Path'](params);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/routesHelper.js"],"names":["RoutesHelper","routes","options","config","host","Object","keys","forEach","key","push","noslash","replace","getHost","bind","customMethods","method","url","result","name","params","console","log","Table","require","table","chars","style","head","reduce","memo","index","path","JSON","stringify","toString"],"mappings":"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","file":"routesHelper.js","sourcesContent":["import generateMatch from './generateMatch'\nimport generatePathMethod from './generatePathMethod'\nimport generateUrlMethod from './generateUrlMethod'\n\nclass RoutesHelper {\n\tconstructor(routes, options = {}) {\n\t\tthis.config = {host: options.host};\n\t\tthis.routes = [];\n\t\tObject.keys(routes).forEach((key) => {\n\t\t\tthis.routes.push(key);\n\t\t\tthis[`${key}Regexp`] = (options = {}) => options.noslash ? routes[key].replace(/^\\//, '') : routes[key];\n\t\t\tthis[`${key}Match`] = generateMatch(routes[key]);\n\t\t\t[this[`${key}Tokens`], this[`${key}Path`]] = generatePathMethod(routes[key]);\n\t\t\tthis[`${key}Url`] = generateUrlMethod(this.getHost.bind(this), this[`${key}Path`]);\n\t\t\t(options.customMethods || []).forEach((method) => method(this));\n\t\t});\n\t}\n\n\tsetHost(host) {\n\t\tthis.config.host = host;\n\t\treturn this;\n\t}\n\n\tgetHost() {\n\t\treturn this.config.host;\n\t}\n\n\tmatch(url) {\n\t\tlet result = null;\n\t\tfor (let key of this.routes) {\n\t\t\tresult = this[`${key}Match`](url);\n\t\t\tif (result !== null) {\n\t\t\t\treturn {name: key, params: result};\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\thelp(method = console.log) {\n\t\tconst Table = require('cli-table');\n\t\tlet table = new Table({\n\t\t\tchars: { 'top': '' , 'top-mid': '' , 'top-left': '' , 'top-right': '',\n\t\t\t\t'bottom': '' , 'bottom-mid': '' , 'bottom-left': '' , 'bottom-right': '',\n\t\t\t\t'left': '' , 'left-mid': '' , 'mid': '' , 'mid-mid': '',\n\t\t\t\t'right': '' , 'right-mid': '' , 'middle': ' '\n\t\t\t},\n\t\t\tstyle: { 'padding-left': 0, 'padding-right': 0 },\n\t\t\thead: ['Method', 'Result']\n\t\t});\n\t\tthis.routes.forEach((key) => {\n\t\t\tconst params = this[`${key}Tokens`].reduce((memo, name, index) => {\n\t\t\t\tmemo[name] = index + 1;\n\t\t\t\treturn memo;\n\t\t\t}, {});\n\t\t\tconst path = this[`${key}Path`](params);\n\t\t\ttable.push(\n\t\t\t\t[`${key}Regexp()`, `${this[`${key}Regexp`]()}`],\n\t\t\t\t[`${key}Match('${path}')`, `${JSON.stringify(this[`${key}Match`](path))}`],\n\t\t\t\t[`${key}Tokens`, `${JSON.stringify(this[`${key}Tokens`])}`],\n\t\t\t\t[`${key}Path(${JSON.stringify(params)})`, path],\n\t\t\t\t[`${key}Url(${JSON.stringify(params)})`, `${this[`${key}Url`](params)}`]\n\t\t\t);\n\t\t});\n\t\tmethod(table.toString());\n\t}\n}\n\nexport default RoutesHelper;\n"]}
1
+ {"version":3,"sources":["../src/routesHelper.js"],"names":["RoutesHelper","routes","options","config","host","Object","keys","forEach","key","push","noslash","replace","getHost","bind","customMethods","method","url","result","name","params","console","log","Table","require","randexp","parse","table","chars","style","head","tokens","filter","token","reduce","memo","index","toString","match","pattern","path","JSON","stringify"],"mappings":"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","file":"routesHelper.js","sourcesContent":["import generateMatch from './generateMatch'\nimport generatePathMethod from './generatePathMethod'\nimport generateUrlMethod from './generateUrlMethod'\n\nclass RoutesHelper {\n\tconstructor(routes, options = {}) {\n\t\tthis.config = {host: options.host};\n\t\tthis.routes = [];\n\t\tObject.keys(routes).forEach((key) => {\n\t\t\tthis.routes.push(key);\n\t\t\tthis[`${key}Regexp`] = (options = {}) => options.noslash ? routes[key].replace(/^\\//, '') : routes[key];\n\t\t\tthis[`${key}Match`] = generateMatch(routes[key]);\n\t\t\t[this[`${key}Tokens`], this[`${key}Path`]] = generatePathMethod(routes[key]);\n\t\t\tthis[`${key}Url`] = generateUrlMethod(this.getHost.bind(this), this[`${key}Path`]);\n\t\t\t(options.customMethods || []).forEach((method) => method(this));\n\t\t});\n\t}\n\n\tsetHost(host) {\n\t\tthis.config.host = host;\n\t\treturn this;\n\t}\n\n\tgetHost() {\n\t\treturn this.config.host;\n\t}\n\n\tmatch(url) {\n\t\tlet result = null;\n\t\tfor (let key of this.routes) {\n\t\t\tresult = this[`${key}Match`](url);\n\t\t\tif (result !== null) {\n\t\t\t\treturn {name: key, params: result};\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\thelp(method = console.log) {\n\t\tconst Table = require('cli-table');\n\t\tconst randexp = require('randexp').randexp;\n\t\tconst parse = require('path-to-regexp').parse;\n\n\t\tlet table = new Table({\n\t\t\tchars: { 'top': '' , 'top-mid': '' , 'top-left': '' , 'top-right': '',\n\t\t\t\t'bottom': '' , 'bottom-mid': '' , 'bottom-left': '' , 'bottom-right': '',\n\t\t\t\t'left': '' , 'left-mid': '' , 'mid': '' , 'mid-mid': '',\n\t\t\t\t'right': '' , 'right-mid': '' , 'middle': ' '\n\t\t\t},\n\t\t\tstyle: { 'padding-left': 0, 'padding-right': 0 },\n\t\t\thead: ['Method', 'Result']\n\t\t});\n\t\tthis.routes.forEach((key) => {\n\t\t\tconst tokens = parse(this[`${key}Regexp`]()).filter((token) => typeof token !== 'string');\n\t\t\tconst params = this[`${key}Tokens`].reduce((memo, name, index) => {\n\t\t\t\tmemo[name] = index + 1;\n\t\t\t\t!memo[name].toString().match(tokens[index].pattern) && (memo[name] = randexp(tokens[index].pattern));\n\t\t\t\treturn memo;\n\t\t\t}, {});\n\t\t\tconst path = this[`${key}Path`](params);\n\t\t\ttable.push(\n\t\t\t\t[`${key}Regexp()`, `${this[`${key}Regexp`]()}`],\n\t\t\t\t[`${key}Match('${path}')`, `${JSON.stringify(this[`${key}Match`](path))}`],\n\t\t\t\t[`${key}Tokens`, `${JSON.stringify(this[`${key}Tokens`])}`],\n\t\t\t\t[`${key}Path(${JSON.stringify(params)})`, path],\n\t\t\t\t[`${key}Url(${JSON.stringify(params)})`, `${this[`${key}Url`](params)}`]\n\t\t\t);\n\t\t});\n\t\tmethod(table.toString());\n\t}\n}\n\nexport default RoutesHelper;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "route-helpers-generator",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "Create methods to easily generate paths and url",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -20,7 +20,7 @@
20
20
  ],
21
21
  "repository": {
22
22
  "type": "git",
23
- "url": "https://github.com/Prizrack13/route-helpers-generator.git"
23
+ "url": "git+https://github.com/Prizrack13/route-helpers-generator.git"
24
24
  },
25
25
  "homepage": "https://github.com//Prizrack13/route-helpers-generator",
26
26
  "keywords": [
@@ -45,6 +45,7 @@
45
45
  "dependencies": {
46
46
  "cli-table": "^0.3.1",
47
47
  "path-to-regexp": "^6.1.0",
48
- "qs": "^6.5.1"
48
+ "qs": "^6.5.1",
49
+ "randexp": "^0.5.3"
49
50
  }
50
51
  }
@@ -1,12 +1,12 @@
1
1
  import qs from 'qs'
2
2
  import {pathToRegexp} from 'path-to-regexp'
3
- import Url from 'url'
3
+ const URL = typeof window === 'undefined' || window.URL.parse === undefined ? require('url') : window.URL
4
4
 
5
5
  const generateMatch = (path) => {
6
6
  let keys = [];
7
7
  const regexp = pathToRegexp(path, keys);
8
8
  return (url) => {
9
- url = Url.parse(url);
9
+ url = URL.parse(url);
10
10
  const formatMatch = url.pathname.match(/\.([^.]+)$/);
11
11
  const format = formatMatch && formatMatch[1];
12
12
  const match = regexp.exec(url.pathname.replace(/\.[^.]+$/, ''));
@@ -38,6 +38,9 @@ class RoutesHelper {
38
38
 
39
39
  help(method = console.log) {
40
40
  const Table = require('cli-table');
41
+ const randexp = require('randexp').randexp;
42
+ const parse = require('path-to-regexp').parse;
43
+
41
44
  let table = new Table({
42
45
  chars: { 'top': '' , 'top-mid': '' , 'top-left': '' , 'top-right': '',
43
46
  'bottom': '' , 'bottom-mid': '' , 'bottom-left': '' , 'bottom-right': '',
@@ -48,8 +51,10 @@ class RoutesHelper {
48
51
  head: ['Method', 'Result']
49
52
  });
50
53
  this.routes.forEach((key) => {
54
+ const tokens = parse(this[`${key}Regexp`]()).filter((token) => typeof token !== 'string');
51
55
  const params = this[`${key}Tokens`].reduce((memo, name, index) => {
52
56
  memo[name] = index + 1;
57
+ !memo[name].toString().match(tokens[index].pattern) && (memo[name] = randexp(tokens[index].pattern));
53
58
  return memo;
54
59
  }, {});
55
60
  const path = this[`${key}Path`](params);