From c2229a3a405f4cbb58f3ae40c6a3f78cc09d3d50 Mon Sep 17 00:00:00 2001 From: Damien Simonin Feugas Date: Tue, 3 Jan 2023 22:18:14 +0100 Subject: [PATCH] chore: addresses leftover from #44045 (#44080) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## ๐Ÿ“– What's in there? Yesterday we didn't had time to address leftovers from #44045. Here it is. - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [ ] [e2e](https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs) tests added - [ ] Documentation added (from [PR 43814](https://github.com/vercel/next.js/pull/43814)) - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have a helpful link attached, see [`contributing.md`](https://github.com/vercel/next.js/blob/canary/contributing.md) ## ๐Ÿงช How to test? Several tests cases added: - in dev mode, errors and warning: `NEXT_TEST_MODE=dev pnpm testheadless --testPathPattern edge-configurable-runtime` - in build mode, build error for pages on the `edge`: `NEXT_TEST_MODE=start pnpm testheadless --testPathPattern edge-configurable-runtime` Co-authored-by: JJ Kasper --- .../build/analysis/get-page-static-info.ts | 25 ++++++++----------- .../edge-configurable-runtime/index.test.ts | 2 +- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/packages/next/src/build/analysis/get-page-static-info.ts b/packages/next/src/build/analysis/get-page-static-info.ts index 63fc708c2c89c70..e028704f921a2ba 100644 --- a/packages/next/src/build/analysis/get-page-static-info.ts +++ b/packages/next/src/build/analysis/get-page-static-info.ts @@ -313,17 +313,14 @@ export async function getPageStaticInfo(params: { !isEdgeRuntime(resolvedRuntime) ) { const options = Object.values(SERVER_RUNTIME).join(', ') - if (typeof resolvedRuntime !== 'string') { - Log.error( - `The \`runtime\` config must be a string. Please leave it empty or choose one of: ${options}` - ) + const message = + typeof resolvedRuntime !== 'string' + ? `The \`runtime\` config must be a string. Please leave it empty or choose one of: ${options}` + : `Provided runtime "${resolvedRuntime}" is not supported. Please leave it empty or choose one of: ${options}` + if (isDev) { + Log.error(message) } else { - Log.error( - `Provided runtime "${resolvedRuntime}" is not supported. Please leave it empty or choose one of: ${options}` - ) - } - if (!isDev) { - process.exit(1) + throw new Error(message) } } @@ -346,10 +343,10 @@ export async function getPageStaticInfo(params: { !isAPIRoute(page.replace(/^\/pages\//, '/')) ) { const message = `Page ${page} provided runtime 'edge', the edge runtime for rendering is currently experimental. Use runtime 'experimental-edge' instead.` - Log.error(message) - - if (!isDev) { - process.exit(1) + if (isDev) { + Log.error(message) + } else { + throw new Error(message) } } diff --git a/test/e2e/edge-configurable-runtime/index.test.ts b/test/e2e/edge-configurable-runtime/index.test.ts index d96cddd836b60e0..08922f86f3c400a 100644 --- a/test/e2e/edge-configurable-runtime/index.test.ts +++ b/test/e2e/edge-configurable-runtime/index.test.ts @@ -122,7 +122,7 @@ describe('Configurable runtime for pages and API routes', () => { expect(output.code).toBe(1) expect(output.stderr).not.toContain(`Build failed`) expect(output.stderr).toContain( - `error - Page / provided runtime 'edge', the edge runtime for rendering is currently experimental. Use runtime 'experimental-edge' instead.` + `Error: Page / provided runtime 'edge', the edge runtime for rendering is currently experimental. Use runtime 'experimental-edge' instead.` ) }) })