-
Notifications
You must be signed in to change notification settings - Fork 27.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor: added more strict app segment config validation #70480
Conversation
Tests Passed |
4858c86
to
6a4a0c0
Compare
1ebdb45
to
c261a85
Compare
6a4a0c0
to
685e01a
Compare
c261a85
to
026cc27
Compare
685e01a
to
0901fa1
Compare
026cc27
to
c552009
Compare
0901fa1
to
ba16a69
Compare
c552009
to
998c585
Compare
ba16a69
to
a428fa1
Compare
998c585
to
1ff36ff
Compare
a428fa1
to
a06c4b7
Compare
1ff36ff
to
351bbbc
Compare
a06c4b7
to
dfa9a4e
Compare
351bbbc
to
3686097
Compare
dfa9a4e
to
3789363
Compare
3686097
to
b8f312e
Compare
3789363
to
6ceba21
Compare
b8f312e
to
3edece9
Compare
6ceba21
to
aa07524
Compare
7a1b186
to
6f319f5
Compare
aa07524
to
fd8a8dd
Compare
6f319f5
to
80164aa
Compare
cd8c4c3
to
6f99389
Compare
|
||
if (staticInfo?.type === PAGE_TYPES.PAGES) { | ||
if ( | ||
staticInfo.config?.config?.amp === true || |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how come this is a doubly nested config?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pages/
supports the following:
export const config = { runtime: "edge" }
params: GetPageStaticInfoParams | ||
): Promise<PageStaticInfo> { | ||
if (params.pageType === PAGE_TYPES.APP) { | ||
return getAppPageStaticInfo(params) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🙏
packages/next/src/build/entries.ts
Outdated
@@ -148,45 +150,32 @@ export async function getStaticInfoIncludingLayouts({ | |||
dir = join(dir, '..') | |||
} | |||
|
|||
// Reverse the layout files so we can use unshift to add them to the | |||
// segments array. | |||
layoutFiles.reverse() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this part is a little strange to me, could you clarify in the comment why we do this?
6f99389
to
64eae6e
Compare
<!-- Thanks for opening a PR! Your contribution is much appreciated. To make sure your PR is handled as smoothly as possible we request that you follow the checklist sections below. Choose the right checklist for the change(s) that you're making: ## For Contributors ### Improving Documentation - Run `pnpm prettier-fix` to fix formatting issues before opening the PR. - Read the Docs Contribution Guide to ensure your contribution follows the docs guidelines: https://nextjs.org/docs/community/contribution-guide ### Adding or Updating Examples - The "examples guidelines" are followed from our contributing doc https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md - Make sure the linting passes by running `pnpm build && pnpm lint`. See https://github.com/vercel/next.js/blob/canary/contributing/repository/linting.md ### Fixing a bug - Related issues linked using `fixes #number` - Tests added. See: https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs - Errors have a helpful link attached, see https://github.com/vercel/next.js/blob/canary/contributing.md ### Adding a feature - Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. (A discussion must be opened, see https://github.com/vercel/next.js/discussions/new?category=ideas) - Related issues/discussions are linked using `fixes #number` - e2e tests added (https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs) - Documentation added - Telemetry added. In case of a feature if it's used or not. - Errors have a helpful link attached, see https://github.com/vercel/next.js/blob/canary/contributing.md ## For Maintainers - Minimal description (aim for explaining to someone not on the team to understand the PR) - When linking to a Slack thread, you might want to share details of the conclusion - Link both the Linear (Fixes NEXT-xxx) and the GitHub issues - Add review comments if necessary to explain to the reviewer the logic behind a change ### What? ### Why? ### How? Closes NEXT- Fixes # --> This increases the strictness that Next.js uses while parsing configuration from applications as well as removing some legacy options (in preparation for Next.js 15). - Errors are now printing to the console while parsing app route segment configuration, improving the reliability of the parsed configuration - **Breaking** Pages and routes in App Router will no long support `export const runtime = "experimental-edge"`, they will be required to switch to `export const runtime = "edge"`. They were the same here anyways but this stabilizes it. - Enables the possibility of parsing the configuration values from client component files via direct AST traversal.
<!-- Thanks for opening a PR! Your contribution is much appreciated. To make sure your PR is handled as smoothly as possible we request that you follow the checklist sections below. Choose the right checklist for the change(s) that you're making: ## For Contributors ### Improving Documentation - Run `pnpm prettier-fix` to fix formatting issues before opening the PR. - Read the Docs Contribution Guide to ensure your contribution follows the docs guidelines: https://nextjs.org/docs/community/contribution-guide ### Adding or Updating Examples - The "examples guidelines" are followed from our contributing doc https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md - Make sure the linting passes by running `pnpm build && pnpm lint`. See https://github.com/vercel/next.js/blob/canary/contributing/repository/linting.md ### Fixing a bug - Related issues linked using `fixes #number` - Tests added. See: https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs - Errors have a helpful link attached, see https://github.com/vercel/next.js/blob/canary/contributing.md ### Adding a feature - Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. (A discussion must be opened, see https://github.com/vercel/next.js/discussions/new?category=ideas) - Related issues/discussions are linked using `fixes #number` - e2e tests added (https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs) - Documentation added - Telemetry added. In case of a feature if it's used or not. - Errors have a helpful link attached, see https://github.com/vercel/next.js/blob/canary/contributing.md ## For Maintainers - Minimal description (aim for explaining to someone not on the team to understand the PR) - When linking to a Slack thread, you might want to share details of the conclusion - Link both the Linear (Fixes NEXT-xxx) and the GitHub issues - Add review comments if necessary to explain to the reviewer the logic behind a change ### What? ### Why? ### How? Closes NEXT- Fixes # --> This increases the strictness that Next.js uses while parsing configuration from applications as well as removing some legacy options (in preparation for Next.js 15). - Errors are now printing to the console while parsing app route segment configuration, improving the reliability of the parsed configuration - **Breaking** Pages and routes in App Router will no long support `export const runtime = "experimental-edge"`, they will be required to switch to `export const runtime = "edge"`. They were the same here anyways but this stabilizes it. - Enables the possibility of parsing the configuration values from client component files via direct AST traversal.
… 13.1.2 (#71081) ### Why? Although the breaking change for `export runtime = 'experimental-edge'` for App Router was recent at #70480, we did move from experimental to `edge` at #44045, and added log at #44563 (release [v13.1.2](https://github.com/vercel/next.js/releases/tag/v13.1.2)) Therefore we lower the target codemod version to 13.1.2. --------- Co-authored-by: Jiachi Liu <inbox@huozhi.im>
… 13.1.2 (#71081) ### Why? Although the breaking change for `export runtime = 'experimental-edge'` for App Router was recent at #70480, we did move from experimental to `edge` at #44045, and added log at #44563 (release [v13.1.2](https://github.com/vercel/next.js/releases/tag/v13.1.2)) Therefore we lower the target codemod version to 13.1.2. --------- Co-authored-by: Jiachi Liu <inbox@huozhi.im>
This increases the strictness that Next.js uses while parsing configuration from applications as well as removing some legacy options (in preparation for Next.js 15).
export const runtime = "experimental-edge"
, they will be required to switch toexport const runtime = "edge"
. They were the same here anyways but this stabilizes it.