From b2f8793561d83f127b5c42a7f696a63de7afe6af Mon Sep 17 00:00:00 2001 From: SukkaW Date: Thu, 17 Feb 2022 20:19:25 +0800 Subject: [PATCH] refactor: re-use existed escapeRegex --- packages/next/shared/lib/router/utils/route-regex.ts | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/next/shared/lib/router/utils/route-regex.ts b/packages/next/shared/lib/router/utils/route-regex.ts index a3a24dc755b0..ca26d12a1e1f 100644 --- a/packages/next/shared/lib/router/utils/route-regex.ts +++ b/packages/next/shared/lib/router/utils/route-regex.ts @@ -1,15 +1,11 @@ +import { escapeStringRegexp } from '../../escape-regexp' + interface Group { pos: number repeat: boolean optional: boolean } -// this isn't importing the escape-string-regex module -// to reduce bytes -function escapeRegex(str: string) { - return str.replace(/[|\\{}()[\]^$+*?.-]/g, '\\$&') -} - function parseParameter(param: string) { const optional = param.startsWith('[') && param.endsWith(']') if (optional) { @@ -34,7 +30,7 @@ export function getParametrizedRoute(route: string) { groups[key] = { pos: groupIndex++, repeat, optional } return repeat ? (optional ? '(?:/(.+?))?' : '/(.+?)') : '/([^/]+?)' } else { - return `/${escapeRegex(segment)}` + return `/${escapeStringRegexp(segment)}` } }) .join('') @@ -92,7 +88,7 @@ export function getParametrizedRoute(route: string) { : `/(?<${cleanedKey}>.+?)` : `/(?<${cleanedKey}>[^/]+?)` } else { - return `/${escapeRegex(segment)}` + return `/${escapeStringRegexp(segment)}` } }) .join('')