No description
Find a file
Damien Simonin Feugas 3c87e1b52a
chore: improves console warnings related to edge runtime (#44563)
## 📖 What's in there?

With Edge Function GA for API Routes, it would make sense to suggest
developer to change their runtime key from `experimental-edge` to
`edge`.

Current behavior is:
1. when using `experimental-edge` in API route: 
> prints a warning _once:_ `warn - You are using an experimental edge
runtime, the API might change.`
   
1. when using `experimental-edge` in pages:
> prints a warning _once:_ `warn - You are using an experimental edge
runtime, the API might change. `
   
1. when using `edge` in pages:
> throws an error _for each page_: `error - Page /xyz provided runtime
'edge', the edge runtime for rendering is currently experimental. Use
runtime 'experimental-edge' instead.`

This PR adjust case # 1 to indicates which API file is using
`experimental-edge` (a warning per page), and suggest to migrate:
`warn - /pages/api/xyz provided runtime 'experimental-edge'. It can be
updated to 'edge' instead.`

- [x] Integration tests added

## 🧪 How to test?

Besides running e2e tests with `NEXT_TEST_MODE=dev pnpm testheadless
--testPathPattern edge-configurable-runtime`, you can create a test app
in `examples` folder:
```jsx
// examples/edge-warnings/pages/api/edge.js
export default () => new Response('ok')
export const config = { runtime: 'experimental-edge' }

// examples/edge-warnings/pages/index.jsx
export default () => <p>hello world</p>
export const runtime = 'experimental-edge'
```

Build next.js then run with `pnpm next dev examples/edge-warnings`.

You can try adding more pages with `experimental-edge` runtime (will not
produce more warnings), adding more API with `experimental-edge` (will
produce new warnings), or change page runtime to `edge` (will produce
errors).
2023-01-06 11:28:51 -08:00
.devcontainer Remove devcontainer network host argument (#44157) 2022-12-19 16:38:20 -08:00
.github Update CNA test skipping (#44606) 2023-01-05 11:25:47 -08:00
.husky Replace pre-commit with husky (#38350) 2022-07-06 11:14:16 -05:00
.vscode Add VSCode settings and recommended extensions for Next.js repository (#43954) 2022-12-12 15:10:54 +01:00
bench misc: fix benchmark script (#44592) 2023-01-05 13:46:41 +00:00
contributing docs: Update GitHub CLI clone command in developing.md (#44509) 2023-01-03 00:07:59 +00:00
docs docs(middleware): add _next/image to match ignore (#44659) 2023-01-06 18:18:16 +00:00
errors Update subset validation in @next/font/google and fix CJK bug (#44594) 2023-01-05 15:51:38 -08:00
examples remove unnecessary babel.config.js in react native web example (#43939) 2023-01-05 17:31:03 -08:00
packages chore: improves console warnings related to edge runtime (#44563) 2023-01-06 11:28:51 -08:00
scripts Fix paths for check-examples script (#44661) 2023-01-06 11:23:12 -08:00
test chore: improves console warnings related to edge runtime (#44563) 2023-01-06 11:28:51 -08:00
.alexignore Enable Alex documentation linting for docs (#26598) 2021-06-25 11:40:50 -05:00
.alexrc Add section to next/future/image docs about Known Browser Bugs (#39759) 2022-08-20 00:21:00 +00:00
.eslintignore Move core files to src folder and move JS files to TypeScript (#44405) 2023-01-03 10:05:50 +01:00
.eslintrc.json Add jsdoc/no-types eslint rule for TypeScript files (#44049) 2022-12-19 10:21:08 +01:00
.gitattributes the way towards webpack 5 typings (#29105) 2021-09-21 19:17:16 +02:00
.gitignore Add tracing for testing tools (#44046) 2022-12-16 09:58:04 +01:00
.npmrc declare pnpm7 as engine (#37303) 2022-05-30 13:13:36 +00:00
.prettierignore Move core files to src folder and move JS files to TypeScript (#44405) 2023-01-03 10:05:50 +01:00
.prettierignore_staged Fix prettierignore_staged for compiled (#44550) 2023-01-03 15:54:11 -08:00
.prettierrc.json Prettier trailingComma default value to es5 since 2.0 (#14391) 2020-06-22 13:25:24 +02:00
azure-pipelines.yml Temporarily disable Azure e2e tests (#44616) 2023-01-05 17:34:16 -08:00
CODE_OF_CONDUCT.md updated code of conduct to v2.1 (#34208) 2022-02-10 18:11:42 -06:00
contributing.md refactor: split up CONTRIBUTING.md (#40515) 2022-09-16 14:54:58 -07:00
jest.config.js Mock @next/font when using next/jest (#42413) 2022-11-03 11:12:46 -07:00
jest.replay.config.js Add Replay integration for dev e2e tests (#40955) 2022-09-29 14:45:10 -07:00
lerna.json v13.1.2-canary.1 2023-01-05 14:20:56 -08:00
license.md Update license year (#44403) 2023-01-01 11:12:49 +01:00
lint-staged.config.js Replace pre-commit with husky (#38350) 2022-07-06 11:14:16 -05:00
package.json Disable telemetry for pnpm next when contributing locally (#44610) 2023-01-05 13:27:05 -08:00
plopfile.js Update pnpm new-test to use createNextDescribe (#44147) 2022-12-19 20:08:50 +01:00
pnpm-lock.yaml v13.1.2-canary.1 2023-01-05 14:20:56 -08:00
pnpm-workspace.yaml misc: add benchmarking script for edge rendering (#40716) 2022-09-27 17:57:16 +02:00
readme.md Monorepo (#5341) 2018-10-01 01:02:10 +02:00
release.js Fix labels for release sections 2021-11-21 13:11:54 +01:00
run-tests.js Use test timings token when available (#44549) 2023-01-03 15:36:59 -08:00
test-file.txt Add additional file serving tests (#12479) 2020-05-04 11:58:19 -05:00
tsconfig-tsec.json Integrate tsec into the linting process (#33746) 2022-02-24 16:59:18 -08:00
tsconfig.json Adds tests to ensure eslint-plugin-next's available rules are properly exported and recommended rules are correctly defined. (#38183) 2022-06-30 11:31:33 -05:00
tsec-exemptions.json Move core files to src folder and move JS files to TypeScript (#44405) 2023-01-03 10:05:50 +01:00
turbo.json build(cargo): fix turbopack + next-swc build (#43983) 2022-12-19 13:10:02 -08:00
UPGRADING.md Move upgrading guide to /docs (#10727) 2020-02-28 23:46:18 +01:00
vercel.json Silence GH Comments for Preview URLs (#18766) 2020-11-03 21:59:47 +00:00

Next.js

Getting Started

Visit https://nextjs.org/learn to get started with Next.js.

Documentation

Visit https://nextjs.org/docs to view the full documentation.

Who is using Next.js?

Next.js is used by the world's leading companies. Check out the Next.js Showcase to learn more.

Community

The Next.js community can be found on GitHub Discussions, where you can ask questions, voice ideas, and share your projects.

To chat with other community members you can join the Next.js Discord.

Our Code of Conduct applies to all Next.js community channels.

Contributing

Please see our contributing.md.

Good First Issues

We have a list of good first issues that contain bugs that have a relatively limited scope. This is a great place to get started, gain experience, and get familiar with our contribution process.

Authors

Security

If you believe you have found a security vulnerability in Next.js, we encourage you to responsibly disclose this and not open a public issue. We will investigate all legitimate reports. Email security@vercel.com to disclose any security vulnerabilities.

https://vercel.com/security