Skip to content
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

Fix RenderOpts in next-server #10776

Merged
merged 8 commits into from Mar 2, 2020

Conversation

Timer
Copy link
Member

@Timer Timer commented Mar 2, 2020

This pull request correctly types the RenderOpts arguments in next-server.

As a side effect, it caught a couple situations:

  • previewProps were not passed in all scenarios (assign in shared object instead of on individual call sites)
  • isDataReq was of the wrong type (added !! to booleanify)
  • Revealed we're sharing the object for pageData and sprRevalidate (added TODOs to fix)

I've added a test to ensure this does not regress. I also fixed a double cookie setting issue identified as a result of this new test.

@Timer Timer added kind: bug Confirmed bug that is on the backlog ready to land labels Mar 2, 2020
@Timer Timer added this to the 9.3.0 milestone Mar 2, 2020
@ijjk
Copy link
Member

ijjk commented Mar 2, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
buildDuration 9.4s 9.2s -197ms
nodeModulesSize 56.3 MB 56.3 MB ⚠️ +389 B
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
main-HASH.js gzip 5.41 kB 5.41 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..7030.js gzip 9.68 kB 9.68 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 55 kB 55 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
main-HASH.module.js gzip 4.44 kB 4.44 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.63 kB 6.63 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51 kB 51 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
polyfills-HASH.js gzip 18.9 kB 18.9 kB
Overall change 18.9 kB 18.9 kB
Client Pages
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_app.js gzip 1.07 kB 1.07 kB
_error.js gzip 2.98 kB 2.98 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 1.89 kB 1.89 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.38 kB 7.38 kB
Client Pages Modern
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_app.module.js gzip 589 B 589 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.27 kB 5.27 kB
Client Build Manifests
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
index.html gzip 925 B 925 B
link.html gzip 935 B 935 B
withRouter.html gzip 923 B 923 B
Overall change 2.78 kB 2.78 kB

Serverless Mode (Decrease detected ✓)
General Overall increase ⚠️
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
buildDuration 9.9s 9.8s -42ms
nodeModulesSize 56.3 MB 56.3 MB ⚠️ +389 B
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
main-HASH.js gzip 5.41 kB 5.41 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..7030.js gzip 9.68 kB 9.68 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 55 kB 55 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
main-HASH.module.js gzip 4.44 kB 4.44 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.63 kB 6.63 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51 kB 51 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
polyfills-HASH.js gzip 18.9 kB 18.9 kB
Overall change 18.9 kB 18.9 kB
Client Pages
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_app.js gzip 1.07 kB 1.07 kB
_error.js gzip 2.98 kB 2.98 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 1.89 kB 1.89 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.38 kB 7.38 kB
Client Pages Modern
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_app.module.js gzip 589 B 589 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.27 kB 5.27 kB
Client Build Manifests
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall decrease ✓
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_error.js gzip 292 kB 292 kB ⚠️ +112 B
404.html gzip 1.33 kB 1.33 kB
hooks.html gzip 964 B 964 B
index.js gzip 293 kB 292 kB -309 B
link.js gzip 300 kB 299 kB -871 B
routerDirect.js gzip 298 kB 298 kB -21 B
withRouter.js gzip 298 kB 298 kB -68 B
Overall change 1.48 MB 1.48 MB -1.16 kB

Commit: 8b0fa28

@ijjk
Copy link
Member

ijjk commented Mar 2, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
buildDuration 8.7s 8.5s -181ms
nodeModulesSize 56.3 MB 56.3 MB ⚠️ +389 B
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
main-HASH.js gzip 5.41 kB 5.41 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..7030.js gzip 9.68 kB 9.68 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 55 kB 55 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
main-HASH.module.js gzip 4.44 kB 4.44 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.63 kB 6.63 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51 kB 51 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
polyfills-HASH.js gzip 18.9 kB 18.9 kB
Overall change 18.9 kB 18.9 kB
Client Pages
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_app.js gzip 1.07 kB 1.07 kB
_error.js gzip 2.98 kB 2.98 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 1.89 kB 1.89 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.38 kB 7.38 kB
Client Pages Modern
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_app.module.js gzip 589 B 589 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.27 kB 5.27 kB
Client Build Manifests
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
index.html gzip 925 B 925 B
link.html gzip 935 B 935 B
withRouter.html gzip 923 B 923 B
Overall change 2.78 kB 2.78 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
buildDuration 9.4s 9.3s -159ms
nodeModulesSize 56.3 MB 56.3 MB ⚠️ +389 B
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
main-HASH.js gzip 5.41 kB 5.41 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..7030.js gzip 9.68 kB 9.68 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 55 kB 55 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
main-HASH.module.js gzip 4.44 kB 4.44 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.63 kB 6.63 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51 kB 51 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
polyfills-HASH.js gzip 18.9 kB 18.9 kB
Overall change 18.9 kB 18.9 kB
Client Pages
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_app.js gzip 1.07 kB 1.07 kB
_error.js gzip 2.98 kB 2.98 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 1.89 kB 1.89 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.38 kB 7.38 kB
Client Pages Modern
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_app.module.js gzip 589 B 589 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.27 kB 5.27 kB
Client Build Manifests
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_error.js gzip 292 kB 292 kB -428 B
404.html gzip 1.33 kB 1.33 kB
hooks.html gzip 964 B 964 B
index.js gzip 292 kB 293 kB ⚠️ +1.04 kB
link.js gzip 300 kB 300 kB -43 B
routerDirect.js gzip 298 kB 298 kB -57 B
withRouter.js gzip 298 kB 299 kB ⚠️ +1.33 kB
Overall change 1.48 MB 1.48 MB ⚠️ +1.85 kB

Commit: 00404c2

@ijjk
Copy link
Member

ijjk commented Mar 2, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
buildDuration 9.6s 9.5s -134ms
nodeModulesSize 56.3 MB 56.3 MB ⚠️ +866 B
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
main-HASH.js gzip 5.41 kB 5.41 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..7030.js gzip 9.68 kB 9.68 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 55 kB 55 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
main-HASH.module.js gzip 4.44 kB 4.44 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.63 kB 6.63 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51 kB 51 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
polyfills-HASH.js gzip 18.9 kB 18.9 kB
Overall change 18.9 kB 18.9 kB
Client Pages
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_app.js gzip 1.07 kB 1.07 kB
_error.js gzip 2.98 kB 2.98 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 1.89 kB 1.89 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.38 kB 7.38 kB
Client Pages Modern
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_app.module.js gzip 589 B 589 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.27 kB 5.27 kB
Client Build Manifests
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
index.html gzip 925 B 925 B
link.html gzip 935 B 935 B
withRouter.html gzip 923 B 923 B
Overall change 2.78 kB 2.78 kB

Serverless Mode (Decrease detected ✓)
General Overall increase ⚠️
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
buildDuration 10.3s 10.3s ⚠️ +1ms
nodeModulesSize 56.3 MB 56.3 MB ⚠️ +866 B
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
main-HASH.js gzip 5.41 kB 5.41 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..7030.js gzip 9.68 kB 9.68 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 55 kB 55 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
main-HASH.module.js gzip 4.44 kB 4.44 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.63 kB 6.63 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51 kB 51 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
polyfills-HASH.js gzip 18.9 kB 18.9 kB
Overall change 18.9 kB 18.9 kB
Client Pages
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_app.js gzip 1.07 kB 1.07 kB
_error.js gzip 2.98 kB 2.98 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 1.89 kB 1.89 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.38 kB 7.38 kB
Client Pages Modern
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_app.module.js gzip 589 B 589 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.27 kB 5.27 kB
Client Build Manifests
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall decrease ✓
zeit/next.js canary Timer/next.js hotfix/pass-preview-data Change
_error.js gzip 292 kB 292 kB ⚠️ +376 B
404.html gzip 1.33 kB 1.33 kB
hooks.html gzip 964 B 964 B
index.js gzip 292 kB 292 kB -158 B
link.js gzip 300 kB 299 kB -439 B
routerDirect.js gzip 298 kB 298 kB ⚠️ +358 B
withRouter.js gzip 298 kB 298 kB -554 B
Overall change 1.48 MB 1.48 MB -417 B

Commit: 5c30d27

@timneutkens timneutkens merged commit 8f01a4a into vercel:canary Mar 2, 2020
@Timer Timer deleted the hotfix/pass-preview-data branch March 2, 2020 13:32
@vercel vercel locked as resolved and limited conversation to collaborators Jan 31, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
kind: bug Confirmed bug that is on the backlog
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants