From 51434c65aee9eba617ed82e2a5a03433185e9213 Mon Sep 17 00:00:00 2001 From: Katie Byers Date: Mon, 7 Feb 2022 17:00:36 -0800 Subject: [PATCH] don't inject into API middleware --- packages/nextjs/src/config/webpack.ts | 2 +- packages/nextjs/test/config.test.ts | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/nextjs/src/config/webpack.ts b/packages/nextjs/src/config/webpack.ts index 3893aea9293f..f3f33281f825 100644 --- a/packages/nextjs/src/config/webpack.ts +++ b/packages/nextjs/src/config/webpack.ts @@ -262,7 +262,7 @@ function checkWebpackPluginOverrides( function shouldAddSentryToEntryPoint(entryPointName: string, isServer: boolean): boolean { return ( entryPointName === 'pages/_app' || - entryPointName.includes('pages/api') || + (entryPointName.includes('pages/api') && !entryPointName.includes('_middleware')) || (isServer && entryPointName === 'pages/_error') ); } diff --git a/packages/nextjs/test/config.test.ts b/packages/nextjs/test/config.test.ts index aee2bfddacfc..4d6f8871f1c7 100644 --- a/packages/nextjs/test/config.test.ts +++ b/packages/nextjs/test/config.test.ts @@ -92,6 +92,7 @@ const serverWebpackConfig = { Promise.resolve({ 'pages/_error': 'private-next-pages/_error.js', 'pages/_app': ['./node_modules/smellOVision/index.js', 'private-next-pages/_app.js'], + 'pages/api/_middleware': 'private-next-pages/api/_middleware.js', 'pages/api/simulator/dogStats/[name]': { import: 'private-next-pages/api/simulator/dogStats/[name].js' }, 'pages/api/simulator/leaderboard': { import: ['./node_modules/dogPoints/converter.js', 'private-next-pages/api/simulator/leaderboard.js'], @@ -448,6 +449,21 @@ describe('webpack config', () => { ); }); + it('does not inject user config file into API middleware', async () => { + const finalWebpackConfig = await materializeFinalWebpackConfig({ + userNextConfig, + incomingWebpackConfig: serverWebpackConfig, + incomingWebpackBuildContext: serverBuildContext, + }); + + expect(finalWebpackConfig.entry).toEqual( + expect.objectContaining({ + // no injected file + 'pages/api/_middleware': 'private-next-pages/api/_middleware.js', + }), + ); + }); + it('does not inject anything into non-_app, non-_error, non-API routes', async () => { const finalWebpackConfig = await materializeFinalWebpackConfig({ userNextConfig,