UNPKG

563 BJavaScriptView Raw
1const { parse } = require('url');
2const UrlPattern = require('url-pattern');
3
4const patternOpts = {
5 segmentNameCharset: 'a-zA-Z0-9_-',
6 segmentValueCharset: 'a-zA-Z0-9@.+-_'
7};
8
9const isPattern = pattern => pattern instanceof UrlPattern;
10
11const getParamsAndQuery = (pattern, url) => {
12 const { query, pathname } = parse(url, true);
13 const route = isPattern(pattern) ? pattern : new UrlPattern(pattern, patternOpts);
14 const params = route.match(pathname);
15
16 return { query, params };
17};
18
19module.exports = {
20 getParamsAndQuery,
21 isPattern,
22 patternOpts
23};
\No newline at end of file