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

Add additional pageProps check #15667

Merged
merged 1 commit into from
Jul 30, 2020
Merged

Conversation

ijjk
Copy link
Member

@ijjk ijjk commented Jul 30, 2020

pageProps should always be defined to ensure everything is working as expected although to prevent a breaking change this adds an additional check before attempting to access pageProps before hydration. It also adds tests to prevent regressing on this

Closes: #15647

@ijjk
Copy link
Member Author

ijjk commented Jul 30, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/pageprops-check Change
buildDuration 12.8s 12.9s ⚠️ +103ms
nodeModulesSize 65.5 MB 65.5 MB ⚠️ +79 B
Page Load Tests Overall increase ✓
vercel/next.js canary ijjk/next.js fix/pageprops-check Change
/ failed reqs 0 0
/ total time (seconds) 2.213 2.219 ⚠️ +0.01
/ avg req/sec 1129.64 1126.76 ⚠️ -2.88
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.323 1.293 -0.03
/error-in-render avg req/sec 1890.02 1934.12 +44.1
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/pageprops-check Change
677f882d2ed8..b7a9.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
main-1c134f5..211a.js gzip 6.76 kB 6.76 kB ⚠️ +2 B
webpack-488d..c0e7.js gzip 751 B 751 B
Overall change 56.8 kB 56.8 kB ⚠️ +2 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/pageprops-check Change
677f882d2ed8..dule.js gzip 6.09 kB 6.09 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
main-cbba90d..dule.js gzip 5.84 kB 5.84 kB ⚠️ +1 B
webpack-4f62..dule.js gzip 751 B 751 B
Overall change 51.8 kB 51.8 kB ⚠️ +1 B
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js fix/pageprops-check Change
polyfills-05..1236.js gzip 30.8 kB 30.8 kB
Overall change 30.8 kB 30.8 kB
Client Pages
vercel/next.js canary ijjk/next.js fix/pageprops-check Change
_app-8f5f611..1f7b.js gzip 1.28 kB 1.28 kB
_error-a98d9..5cb7.js gzip 3.45 kB 3.45 kB
hooks-f7f3d0..7465.js gzip 887 B 887 B
index-08fb3f..c0e9.js gzip 227 B 227 B
link-6f8445b..99e1.js gzip 1.3 kB 1.3 kB
routerDirect..8aa1.js gzip 284 B 284 B
withRouter-f..e777.js gzip 284 B 284 B
Overall change 7.72 kB 7.72 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js fix/pageprops-check Change
_app-669dbe5..dule.js gzip 626 B 626 B
_error-d5979..dule.js gzip 2.3 kB 2.3 kB
hooks-805c40..dule.js gzip 387 B 387 B
index-6ba5a4..dule.js gzip 226 B 226 B
link-91516ae..dule.js gzip 1.25 kB 1.25 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-d..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js fix/pageprops-check Change
_buildManifest.js gzip 274 B 274 B
_buildManife..dule.js gzip 282 B 282 B
Overall change 556 B 556 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary ijjk/next.js fix/pageprops-check Change
index.html gzip 949 B 945 B -4 B
link.html gzip 954 B 953 B -1 B
withRouter.html gzip 942 B 940 B -2 B
Overall change 2.85 kB 2.84 kB -7 B

Diffs

Diff for main-c29a544..abc71a24a.js
@@ -322,6 +322,7 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
         !(
           page === "/_error" &&
           hydrateProps &&
+          hydrateProps.pageProps &&
           hydrateProps.pageProps.statusCode === "404"
         )
       ) {
Diff for main-d4a9c68..2d.module.js
@@ -242,6 +242,7 @@
         !(
           page === "/_error" &&
           hydrateProps &&
+          hydrateProps.pageProps &&
           hydrateProps.pageProps.statusCode === "404"
         )
       ) {
Diff for index.html
@@ -6,7 +6,7 @@
     <meta name="next-head-count" content="2" />
     <link
       rel="preload"
-      href="/_next/static/chunks/main-d4a9c683b5dabeb29f2d.module.js"
+      href="/_next/static/chunks/main-88a4d8003836e3421b5b.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -81,13 +81,13 @@
       src="/_next/static/chunks/polyfills-cdbbd579644400b29b58.js"
     ></script>
     <script
-      src="/_next/static/chunks/main-c29a5446ae7abc71a24a.js"
+      src="/_next/static/chunks/main-e647ae20b32b3e1da5ee.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/main-d4a9c683b5dabeb29f2d.module.js"
+      src="/_next/static/chunks/main-88a4d8003836e3421b5b.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -6,7 +6,7 @@
     <meta name="next-head-count" content="2" />
     <link
       rel="preload"
-      href="/_next/static/chunks/main-d4a9c683b5dabeb29f2d.module.js"
+      href="/_next/static/chunks/main-88a4d8003836e3421b5b.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -86,13 +86,13 @@
       src="/_next/static/chunks/polyfills-cdbbd579644400b29b58.js"
     ></script>
     <script
-      src="/_next/static/chunks/main-c29a5446ae7abc71a24a.js"
+      src="/_next/static/chunks/main-e647ae20b32b3e1da5ee.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/main-d4a9c683b5dabeb29f2d.module.js"
+      src="/_next/static/chunks/main-88a4d8003836e3421b5b.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -6,7 +6,7 @@
     <meta name="next-head-count" content="2" />
     <link
       rel="preload"
-      href="/_next/static/chunks/main-d4a9c683b5dabeb29f2d.module.js"
+      href="/_next/static/chunks/main-88a4d8003836e3421b5b.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -81,13 +81,13 @@
       src="/_next/static/chunks/polyfills-cdbbd579644400b29b58.js"
     ></script>
     <script
-      src="/_next/static/chunks/main-c29a5446ae7abc71a24a.js"
+      src="/_next/static/chunks/main-e647ae20b32b3e1da5ee.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/main-d4a9c683b5dabeb29f2d.module.js"
+      src="/_next/static/chunks/main-88a4d8003836e3421b5b.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/pageprops-check Change
buildDuration 14s 14.2s ⚠️ +180ms
nodeModulesSize 65.5 MB 65.5 MB ⚠️ +79 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/pageprops-check Change
677f882d2ed8..b7a9.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
main-1c134f5..211a.js gzip 6.76 kB N/A N/A
webpack-488d..c0e7.js gzip 751 B 751 B
main-935e413..31c4.js gzip N/A 6.76 kB N/A
Overall change 56.8 kB 56.8 kB ⚠️ +2 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/pageprops-check Change
677f882d2ed8..dule.js gzip 6.09 kB 6.09 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
main-cbba90d..dule.js gzip 5.84 kB N/A N/A
webpack-4f62..dule.js gzip 751 B 751 B
main-4b8f4a8..dule.js gzip N/A 5.84 kB N/A
Overall change 51.8 kB 51.8 kB ⚠️ +1 B
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js fix/pageprops-check Change
polyfills-05..1236.js gzip 30.8 kB 30.8 kB
Overall change 30.8 kB 30.8 kB
Client Pages
vercel/next.js canary ijjk/next.js fix/pageprops-check Change
_app-8f5f611..1f7b.js gzip 1.28 kB 1.28 kB
_error-a98d9..5cb7.js gzip 3.45 kB 3.45 kB
hooks-f7f3d0..7465.js gzip 887 B 887 B
index-08fb3f..c0e9.js gzip 227 B 227 B
link-6f8445b..99e1.js gzip 1.3 kB 1.3 kB
routerDirect..8aa1.js gzip 284 B 284 B
withRouter-f..e777.js gzip 284 B 284 B
Overall change 7.72 kB 7.72 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js fix/pageprops-check Change
_app-669dbe5..dule.js gzip 626 B 626 B
_error-d5979..dule.js gzip 2.3 kB 2.3 kB
hooks-805c40..dule.js gzip 387 B 387 B
index-6ba5a4..dule.js gzip 226 B 226 B
link-91516ae..dule.js gzip 1.25 kB 1.25 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-d..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js fix/pageprops-check Change
_buildManifest.js gzip 274 B 274 B
_buildManife..dule.js gzip 282 B 282 B
Overall change 556 B 556 B
Serverless bundles
vercel/next.js canary ijjk/next.js fix/pageprops-check Change
_error.js 1.02 MB 1.02 MB
404.html 4.18 kB 4.18 kB
hooks.html 3.82 kB 3.82 kB
index.js 1.02 MB 1.02 MB
link.js 1.06 MB 1.06 MB
routerDirect.js 1.05 MB 1.05 MB
withRouter.js 1.05 MB 1.05 MB
Overall change 5.2 MB 5.2 MB
Commit: 921ddd5

@kodiakhq kodiakhq bot merged commit ce56b60 into vercel:canary Jul 30, 2020
@Timer Timer deleted the fix/pageprops-check branch July 30, 2020 05:34
LauraBeatris pushed a commit to LauraBeatris/next.js that referenced this pull request Sep 1, 2020
`pageProps` should always be defined to ensure everything is working as expected although to prevent a breaking change this adds an additional check before attempting to access `pageProps` before hydration. It also adds tests to prevent regressing on this

Closes: vercel#15647
@vercel vercel locked as resolved and limited conversation to collaborators Jan 30, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9.5.0 expects pageProps in error pages unconditionally
2 participants