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 +1 -0
- package/dist/generateMatch.js +3 -5
- package/dist/generateMatch.js.map +1 -1
- package/dist/generatePathMethod.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/routesHelper.js +7 -0
- package/dist/routesHelper.js.map +1 -1
- package/package.json +4 -3
- package/src/generateMatch.js +2 -2
- package/src/routesHelper.js +5 -0
package/README.md
CHANGED
package/dist/generateMatch.js
CHANGED
|
@@ -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 =
|
|
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":["
|
|
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","
|
|
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"
|
|
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"]}
|
package/dist/routesHelper.js
CHANGED
|
@@ -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);
|
package/dist/routesHelper.js.map
CHANGED
|
@@ -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"
|
|
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
|
+
"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
|
}
|
package/src/generateMatch.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import qs from 'qs'
|
|
2
2
|
import {pathToRegexp} from 'path-to-regexp'
|
|
3
|
-
|
|
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 =
|
|
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(/\.[^.]+$/, ''));
|
package/src/routesHelper.js
CHANGED
|
@@ -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);
|