-
Notifications
You must be signed in to change notification settings - Fork 26.1k
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
Cleanup Render Result #58782
Cleanup Render Result #58782
Conversation
Current dependencies on/for this PR:
This stack of pull requests is managed by Graphite. |
8d1e7a7
to
ebe6477
Compare
Tests Passed |
ebe6477
to
8cac08e
Compare
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | vercel/next.js chore/render-result-cleanup | Change | |
---|---|---|---|
buildDuration | 10.3s | 10.4s | N/A |
buildDurationCached | 5.9s | 6.4s | |
nodeModulesSize | 199 MB | 199 MB | |
nextStartRea..uration (ms) | 418ms | 425ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | vercel/next.js chore/render-result-cleanup | Change | |
---|---|---|---|
199-HASH.js gzip | 28.7 kB | 28.7 kB | ✓ |
3f784ff6-HASH.js gzip | 53.3 kB | 53.3 kB | ✓ |
494.HASH.js gzip | 180 B | 181 B | N/A |
framework-HASH.js gzip | 45.2 kB | 45.2 kB | ✓ |
main-app-HASH.js gzip | 241 B | 239 B | N/A |
main-HASH.js gzip | 31.7 kB | 31.7 kB | N/A |
webpack-HASH.js gzip | 1.7 kB | 1.7 kB | ✓ |
Overall change | 129 kB | 129 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js chore/render-result-cleanup | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | vercel/next.js chore/render-result-cleanup | Change | |
---|---|---|---|
_app-HASH.js gzip | 194 B | 195 B | N/A |
_error-HASH.js gzip | 182 B | 181 B | N/A |
amp-HASH.js gzip | 501 B | 503 B | N/A |
css-HASH.js gzip | 322 B | 323 B | N/A |
dynamic-HASH.js gzip | 2.5 kB | 2.5 kB | ✓ |
edge-ssr-HASH.js gzip | 253 B | 255 B | N/A |
head-HASH.js gzip | 348 B | 347 B | N/A |
hooks-HASH.js gzip | 369 B | 368 B | N/A |
image-HASH.js gzip | 4.27 kB | 4.27 kB | N/A |
index-HASH.js gzip | 256 B | 256 B | ✓ |
link-HASH.js gzip | 2.61 kB | 2.6 kB | N/A |
routerDirect..HASH.js gzip | 311 B | 311 B | ✓ |
script-HASH.js gzip | 384 B | 383 B | N/A |
withRouter-HASH.js gzip | 307 B | 308 B | N/A |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 3.17 kB | 3.17 kB | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js chore/render-result-cleanup | Change | |
---|---|---|---|
_buildManifest.js gzip | 484 B | 483 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js chore/render-result-cleanup | Change | |
---|---|---|---|
index.html gzip | 527 B | 528 B | N/A |
link.html gzip | 539 B | 541 B | N/A |
withRouter.html gzip | 525 B | 522 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary | vercel/next.js chore/render-result-cleanup | Change | |
---|---|---|---|
edge-ssr.js gzip | 92.5 kB | 92.5 kB | N/A |
page.js gzip | 145 kB | 145 kB | |
Overall change | 145 kB | 145 kB |
Middleware size
vercel/next.js canary | vercel/next.js chore/render-result-cleanup | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 625 B | 626 B | N/A |
middleware-r..fest.js gzip | 150 B | 151 B | N/A |
middleware.js gzip | 35.6 kB | 35.6 kB | N/A |
edge-runtime..pack.js gzip | 1.92 kB | 1.92 kB | ✓ |
Overall change | 1.92 kB | 1.92 kB | ✓ |
Next Runtimes Overall increase ⚠️
vercel/next.js canary | vercel/next.js chore/render-result-cleanup | Change | |
---|---|---|---|
app-page-exp...dev.js gzip | 167 kB | 167 kB | N/A |
app-page-exp..prod.js gzip | 93.4 kB | 93.5 kB | |
app-page-tur..prod.js gzip | 94.2 kB | 94.3 kB | |
app-page-tur..prod.js gzip | 88.7 kB | 88.8 kB | |
app-page.run...dev.js gzip | 137 kB | 137 kB | N/A |
app-page.run..prod.js gzip | 88.1 kB | 88.2 kB | |
app-route-ex...dev.js gzip | 23.8 kB | 23.8 kB | N/A |
app-route-ex..prod.js gzip | 16.5 kB | 16.5 kB | N/A |
app-route-tu..prod.js gzip | 16.5 kB | 16.5 kB | N/A |
app-route-tu..prod.js gzip | 16 kB | 16 kB | N/A |
app-route.ru...dev.js gzip | 23.2 kB | 23.2 kB | N/A |
app-route.ru..prod.js gzip | 16 kB | 16 kB | N/A |
pages-api-tu..prod.js gzip | 9.37 kB | 9.37 kB | ✓ |
pages-api.ru...dev.js gzip | 9.64 kB | 9.64 kB | ✓ |
pages-api.ru..prod.js gzip | 9.37 kB | 9.37 kB | ✓ |
pages-turbo...prod.js gzip | 21.8 kB | 21.9 kB | N/A |
pages.runtim...dev.js gzip | 22.5 kB | 22.5 kB | N/A |
pages.runtim..prod.js gzip | 21.8 kB | 21.9 kB | N/A |
server.runti..prod.js gzip | 49.2 kB | 49.2 kB | N/A |
Overall change | 393 kB | 393 kB |
Diff details
Diff for page.js
Diff too large to display
Diff for edge-ssr.js
Diff too large to display
Diff for 199-HASH.js
Diff too large to display
Diff for app-page-exp..ntime.dev.js
failed to diff
Diff for app-page-exp..time.prod.js
Diff too large to display
Diff for app-page-tur..time.prod.js
Diff too large to display
Diff for app-page-tur..time.prod.js
Diff too large to display
Diff for app-page.runtime.dev.js
failed to diff
Diff for app-page.runtime.prod.js
Diff too large to display
Diff for app-route-ex..ntime.dev.js
Diff too large to display
Diff for app-route-ex..time.prod.js
Diff too large to display
Diff for app-route-tu..time.prod.js
Diff too large to display
Diff for app-route-tu..time.prod.js
Diff too large to display
Diff for app-route.runtime.dev.js
Diff too large to display
Diff for app-route.ru..time.prod.js
Diff too large to display
Diff for pages-turbo...time.prod.js
Diff too large to display
Diff for pages.runtime.dev.js
Diff too large to display
Diff for pages.runtime.prod.js
Diff too large to display
Diff for server.runtime.prod.js
Diff too large to display
8cac08e
to
8bbe107
Compare
8bbe107
to
550fc3a
Compare
const { metadata } = result | ||
const { flightData, revalidate = false, postponed, fetchTags } = metadata |
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.
non blocking nit: there's already a concept of metadata in the app router, could we perhaps chose another more explicit name? prerenderingMetadata
This improves some of the typings around the
RenderResult
returned during renders. Previously it had a single large metadata object that was shared across both the pages and app render pipelines. To add more type safety, this splits the types used by each of the render pipelines into their own types while still allowing the defaultRenderResult
to reference metadata from either render pipeline.This also improved the flight data generation for app renders. Previously, the promise was inlined, and errors were swallowed. With the advent of improvements in #58779 the postpone errors are no longer returned by the flight generation and are instead handled correctly inside the render by React so it can emit properly postponed flight data.
Besides that there was some whitespace changes, so hiding whitespace differences during review should make it much clearer to review!