diff --git a/packages/cli/test/unit/commands/build/index.test.ts b/packages/cli/test/unit/commands/build/index.test.ts index be35fb2dc..c7216279e 100644 --- a/packages/cli/test/unit/commands/build/index.test.ts +++ b/packages/cli/test/unit/commands/build/index.test.ts @@ -484,6 +484,7 @@ describe('build', () => { { src: '^/.*$', middlewarePath: 'middleware', + middlewareRawSrc: [], override: true, continue: true, }, @@ -548,6 +549,7 @@ describe('build', () => { { src: '^/.*$', middlewarePath: 'middleware', + middlewareRawSrc: [], override: true, continue: true, }, @@ -612,6 +614,7 @@ describe('build', () => { { src: '^\\/about(?:\\/((?:[^\\/#\\?]+?)(?:\\/(?:[^\\/#\\?]+?))*))?[\\/#\\?]?$|^\\/dashboard(?:\\/((?:[^\\/#\\?]+?)(?:\\/(?:[^\\/#\\?]+?))*))?[\\/#\\?]?$', middlewarePath: 'middleware', + middlewareRawSrc: ['/about/:path*', '/dashboard/:path*'], override: true, continue: true, }, diff --git a/packages/node/src/index.ts b/packages/node/src/index.ts index fd8b9a935..8fd5cf314 100644 --- a/packages/node/src/index.ts +++ b/packages/node/src/index.ts @@ -449,9 +449,19 @@ export const build: BuildV3 = async ({ // Middleware is a catch-all for all paths unless a `matcher` property is defined const src = getRegExpFromMatchers(staticConfig?.matcher); + const middlewareRawSrc: string[] = []; + if (staticConfig?.matcher) { + if (Array.isArray(staticConfig.matcher)) { + middlewareRawSrc.push(...staticConfig.matcher); + } else { + middlewareRawSrc.push(staticConfig.matcher as string); + } + } + routes = [ { src, + middlewareRawSrc, middlewarePath: outputPath, continue: true, override: true,