diff --git a/packages/runtime/src/helpers/edge.ts b/packages/runtime/src/helpers/edge.ts index b9c3581984..8c1c2a66d5 100644 --- a/packages/runtime/src/helpers/edge.ts +++ b/packages/runtime/src/helpers/edge.ts @@ -11,7 +11,7 @@ import type { RouteHas } from 'next/dist/lib/load-custom-routes' import { outdent } from 'outdent' import { getRequiredServerFiles, NextConfig } from './config' -import { makeLocaleOptional, stripLookahead } from './matchers' +import { makeLocaleOptional, stripLookahead, transformCaptureGroups } from './matchers' import { RoutesManifest } from './types' // This is the format as of next@12.2 @@ -267,7 +267,7 @@ const writeEdgeFunction = async ({ // We add a defintion for each matching path return matchers.map((matcher) => { - const pattern = stripLookahead(matcher.regexp) + const pattern = transformCaptureGroups(stripLookahead(matcher.regexp)) return { function: name, pattern, name: edgeFunctionDefinition.name, cache } }) } diff --git a/packages/runtime/src/helpers/matchers.ts b/packages/runtime/src/helpers/matchers.ts index 503f817b67..b6e9261b53 100644 --- a/packages/runtime/src/helpers/matchers.ts +++ b/packages/runtime/src/helpers/matchers.ts @@ -24,6 +24,9 @@ export const stripLookahead = (regex: string) => { } } +// The Go regexp lib has alternative syntax for named capture groups +export const transformCaptureGroups = (regex: string) => regex.replace(/\(\?<\w+>/, '(') + const LOCALIZED_REGEX_PREFIX = '(?:\\/(_next\\/data\\/[^/]{1,}))?(?:\\/([^/.]{1,}))' const OPTIONAL_REGEX_PREFIX = '(?:\\/(_next\\/data\\/[^/]{1,}))?(?:\\/([^/.]{1,}))?' diff --git a/test/e2e/disabled-tests/edge-render-getserversideprops/app/next.config.js b/test/e2e/tests/edge-render-getserversideprops/app/next.config.js similarity index 100% rename from test/e2e/disabled-tests/edge-render-getserversideprops/app/next.config.js rename to test/e2e/tests/edge-render-getserversideprops/app/next.config.js diff --git a/test/e2e/disabled-tests/edge-render-getserversideprops/app/pages/[id].js b/test/e2e/tests/edge-render-getserversideprops/app/pages/[id].js similarity index 100% rename from test/e2e/disabled-tests/edge-render-getserversideprops/app/pages/[id].js rename to test/e2e/tests/edge-render-getserversideprops/app/pages/[id].js diff --git a/test/e2e/disabled-tests/edge-render-getserversideprops/app/pages/index.js b/test/e2e/tests/edge-render-getserversideprops/app/pages/index.js similarity index 100% rename from test/e2e/disabled-tests/edge-render-getserversideprops/app/pages/index.js rename to test/e2e/tests/edge-render-getserversideprops/app/pages/index.js diff --git a/test/e2e/disabled-tests/edge-render-getserversideprops/index.test.ts b/test/e2e/tests/edge-render-getserversideprops/index.test.ts similarity index 100% rename from test/e2e/disabled-tests/edge-render-getserversideprops/index.test.ts rename to test/e2e/tests/edge-render-getserversideprops/index.test.ts