From 4e02638e7cbf803baaf25ea50e894430889f44ec Mon Sep 17 00:00:00 2001 From: NikolaBorislavovHristov Date: Wed, 28 Aug 2019 15:21:47 +0300 Subject: [PATCH] routes regexp implemented with custom regexp --- src/common/routesRegexp.js | 61 +++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 21 deletions(-) diff --git a/src/common/routesRegexp.js b/src/common/routesRegexp.js index 50ca791cc..b76ba7a23 100644 --- a/src/common/routesRegexp.js +++ b/src/common/routesRegexp.js @@ -1,25 +1,44 @@ -const PathToRegexp = require('path-to-regexp'); - -const compilePath = (path, options) => { - const keys = []; - const regexp = PathToRegexp(path, keys, { ...options }); - return { - regexp, - urlParamsNames: keys.map(({ name }) => name) - }; -}; - const routesRegexp = { - intro: compilePath('/intro'), - board: compilePath('/'), - discover: compilePath('/discover/:type?/:catalog?'), - library: compilePath('/library/:sort?'), - calendar: compilePath('/calendar'), - search: compilePath('/search'), - detail: compilePath('/detail/:type/:id/:videoId?'), - addons: compilePath('/addons'), - settings: compilePath('/settings'), - player: compilePath('/player') + intro: { + regexp: /^\/intro\/?$/i, + urlParamsNames: [] + }, + board: { + regexp: /^\/?$/i, + urlParamsNames: [] + }, + discover: { + regexp: /^\/discover(?:\/([^\/]*?))?(?:\/([^\/]*?))?\/?$/i, + urlParamsNames: ['type', 'catalog'] + }, + library: { + regexp: /^\/library(?:\/([^\/]*?))?\/?$/i, + urlParamsNames: ['sort'] + }, + calendar: { + regexp: /^\/calendar\/?$/i, + urlParamsNames: [] + }, + search: { + regexp: /^\/search\/?$/i, + urlParamsNames: [] + }, + detail: { + regexp: /^\/detail\/(?:([^\/]+?))\/(?:([^\/]+?))(?:\/([^\/]*?))?\/?$/i, + urlParamsNames: [] + }, + addons: { + regexp: /^\/addons\/?$/i, + urlParamsNames: [] + }, + settings: { + regexp: /^\/settings\/?$/i, + urlParamsNames: [] + }, + player: { + regexp: /^\/player\/?$/i, + urlParamsNames: [] + } }; module.exports = routesRegexp;