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

make getStaticPaths work with optional catch-all routes #13559

Merged
merged 15 commits into from
Jun 1, 2020

Conversation

Janpot
Copy link
Contributor

@Janpot Janpot commented May 29, 2020

Fixes #13524

To do:

  • fix dev mode
  • there's a route ordering or trailing slash issue with top level catch-all (current tests reflect that)
  • in this test /get-static-paths/whatever should fall back to /[[...optionalName]].js since fallback is false in its getStaticPaths method. Currently seems to 500 must have been a glitch
  • add tests for null, undefined and false behavior as well (if decided these are valid)
  • add tests for string params as well this is not allowed for catch-all routes
  • test behavior when fallback is enabled and a top level catch-all exists

@Janpot Janpot changed the title make getStaticPaths work make getStaticPaths work with optional catch-all routes May 29, 2020
@Timer Timer self-assigned this May 29, 2020
@Janpot Janpot marked this pull request as ready for review June 1, 2020 10:45
@ijjk
Copy link
Member

ijjk commented Jun 1, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
buildDuration 12.2s 12.1s -69ms
nodeModulesSize 65.2 MB 65.2 MB ⚠️ +1.42 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
/ failed reqs 0 0
/ total time (seconds) 1.972 2.11 ⚠️ +0.14
/ avg req/sec 1267.99 1184.66 -83.33
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.258 1.213 -0.04
/error-in-render avg req/sec 1987.72 2060.33 ⚠️ +72.61
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
main-HASH.js gzip 6.59 kB 6.59 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..8679.js gzip 10.5 kB 10.5 kB ⚠️ +10 B
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 57 kB 57 kB ⚠️ +10 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
main-HASH.module.js gzip 5.67 kB 5.67 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.92 kB 6.93 kB ⚠️ +7 B
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.5 kB 52.5 kB ⚠️ +7 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Janpot/next.js optional-static-paths Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
vercel/next.js canary Janpot/next.js optional-static-paths Change
_app.js gzip 1.26 kB 1.26 kB
_error.js gzip 3.25 kB 3.25 kB
hooks.js gzip 881 B 881 B
index.js gzip 222 B 222 B
link.js gzip 2.06 kB 2.06 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 8.22 kB 8.22 kB
Client Pages Modern
vercel/next.js canary Janpot/next.js optional-static-paths Change
_app.module.js gzip 604 B 604 B
_error.module.js gzip 2.04 kB 2.04 kB
hooks.module.js gzip 383 B 383 B
index.module.js gzip 223 B 223 B
link.module.js gzip 1.52 kB 1.52 kB
routerDirect..dule.js gzip 281 B 281 B
withRouter.m..dule.js gzip 278 B 278 B
Overall change 5.33 kB 5.33 kB
Client Build Manifests
vercel/next.js canary Janpot/next.js optional-static-paths 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 Overall decrease ✓
vercel/next.js canary Janpot/next.js optional-static-paths Change
index.html gzip 927 B 926 B -1 B
link.html gzip 937 B 935 B -2 B
withRouter.html gzip 923 B 923 B
Overall change 2.79 kB 2.78 kB -3 B

Diffs

Diff for de003c3a9d30..a18624191.js
@@ -548,7 +548,8 @@
                 .replace(/\\([|\\{}()[\]^$+*?.-])/g, "$1") // eslint-disable-next-line no-sequences
             ] = {
               pos: groupIndex++,
-              repeat: isCatchAll
+              repeat: isCatchAll,
+              optional: isOptional
             };
             return isCatchAll
               ? isOptional
Diff for de003c3a9d30..08.module.js
@@ -470,7 +470,8 @@
                 .replace(/\\([|\\{}()[\]^$+*?.-])/g, "$1") // eslint-disable-next-line no-sequences
             ] = {
               pos: groupIndex++,
-              repeat: isCatchAll
+              repeat: isCatchAll,
+              optional: isOptional
             };
             return isCatchAll
               ? isOptional
Diff for index.html
@@ -30,7 +30,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -133,13 +133,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.3db71069b12a18624191.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.af1e06cc201c9a513ccb.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -30,7 +30,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -138,13 +138,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.3db71069b12a18624191.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.af1e06cc201c9a513ccb.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -30,7 +30,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -133,13 +133,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.3db71069b12a18624191.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.af1e06cc201c9a513ccb.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
buildDuration 13.3s 13.4s ⚠️ +85ms
nodeModulesSize 65.2 MB 65.2 MB ⚠️ +1.42 kB
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
main-HASH.js gzip 6.59 kB 6.59 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..8679.js gzip 10.5 kB N/A N/A
framework.HASH.js gzip 39.1 kB 39.1 kB
de003c3a9d30..21ef.js gzip N/A 10.5 kB N/A
Overall change 57 kB 57 kB ⚠️ +10 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
main-HASH.module.js gzip 5.67 kB 5.67 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.92 kB N/A N/A
framework.HA..dule.js gzip 39.1 kB 39.1 kB
de003c3a9d30..dule.js gzip N/A 6.93 kB N/A
Overall change 52.5 kB 52.5 kB ⚠️ +7 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Janpot/next.js optional-static-paths Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
vercel/next.js canary Janpot/next.js optional-static-paths Change
_app.js gzip 1.26 kB 1.26 kB
_error.js gzip 3.25 kB 3.25 kB
hooks.js gzip 881 B 881 B
index.js gzip 222 B 222 B
link.js gzip 2.06 kB 2.06 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 8.22 kB 8.22 kB
Client Pages Modern
vercel/next.js canary Janpot/next.js optional-static-paths Change
_app.module.js gzip 604 B 604 B
_error.module.js gzip 2.04 kB 2.04 kB
hooks.module.js gzip 383 B 383 B
index.module.js gzip 223 B 223 B
link.module.js gzip 1.52 kB 1.52 kB
routerDirect..dule.js gzip 281 B 281 B
withRouter.m..dule.js gzip 278 B 278 B
Overall change 5.33 kB 5.33 kB
Client Build Manifests
vercel/next.js canary Janpot/next.js optional-static-paths 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 ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
_error.js 877 kB 877 kB
404.html 4.18 kB 4.18 kB
hooks.html 3.81 kB 3.81 kB
index.js 877 kB 877 kB
link.js 915 kB 915 kB ⚠️ +28 B
routerDirect.js 907 kB 907 kB ⚠️ +28 B
withRouter.js 907 kB 907 kB ⚠️ +28 B
Overall change 4.49 MB 4.49 MB ⚠️ +84 B

@ijjk
Copy link
Member

ijjk commented Jun 1, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
buildDuration 12s 11.9s -87ms
nodeModulesSize 65.2 MB 65.2 MB ⚠️ +1.42 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
/ failed reqs 0 0
/ total time (seconds) 2.096 2.075 -0.02
/ avg req/sec 1192.62 1204.8 ⚠️ +12.18
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.197 1.266 ⚠️ +0.07
/error-in-render avg req/sec 2088.57 1975.21 -113.36
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
main-HASH.js gzip 6.59 kB 6.59 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..8679.js gzip 10.5 kB 10.5 kB ⚠️ +10 B
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 57 kB 57 kB ⚠️ +10 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
main-HASH.module.js gzip 5.67 kB 5.67 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.92 kB 6.93 kB ⚠️ +7 B
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.5 kB 52.5 kB ⚠️ +7 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Janpot/next.js optional-static-paths Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
vercel/next.js canary Janpot/next.js optional-static-paths Change
_app.js gzip 1.26 kB 1.26 kB
_error.js gzip 3.25 kB 3.25 kB
hooks.js gzip 881 B 881 B
index.js gzip 222 B 222 B
link.js gzip 2.06 kB 2.06 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 8.22 kB 8.22 kB
Client Pages Modern
vercel/next.js canary Janpot/next.js optional-static-paths Change
_app.module.js gzip 604 B 604 B
_error.module.js gzip 2.04 kB 2.04 kB
hooks.module.js gzip 383 B 383 B
index.module.js gzip 223 B 223 B
link.module.js gzip 1.52 kB 1.52 kB
routerDirect..dule.js gzip 281 B 281 B
withRouter.m..dule.js gzip 278 B 278 B
Overall change 5.33 kB 5.33 kB
Client Build Manifests
vercel/next.js canary Janpot/next.js optional-static-paths 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 Overall decrease ✓
vercel/next.js canary Janpot/next.js optional-static-paths Change
index.html gzip 927 B 926 B -1 B
link.html gzip 937 B 935 B -2 B
withRouter.html gzip 923 B 923 B
Overall change 2.79 kB 2.78 kB -3 B

Diffs

Diff for de003c3a9d30..a18624191.js
@@ -548,7 +548,8 @@
                 .replace(/\\([|\\{}()[\]^$+*?.-])/g, "$1") // eslint-disable-next-line no-sequences
             ] = {
               pos: groupIndex++,
-              repeat: isCatchAll
+              repeat: isCatchAll,
+              optional: isOptional
             };
             return isCatchAll
               ? isOptional
Diff for de003c3a9d30..08.module.js
@@ -470,7 +470,8 @@
                 .replace(/\\([|\\{}()[\]^$+*?.-])/g, "$1") // eslint-disable-next-line no-sequences
             ] = {
               pos: groupIndex++,
-              repeat: isCatchAll
+              repeat: isCatchAll,
+              optional: isOptional
             };
             return isCatchAll
               ? isOptional
Diff for index.html
@@ -30,7 +30,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -133,13 +133,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.3db71069b12a18624191.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.af1e06cc201c9a513ccb.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -30,7 +30,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -138,13 +138,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.3db71069b12a18624191.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.af1e06cc201c9a513ccb.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -30,7 +30,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -133,13 +133,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.3db71069b12a18624191.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.af1e06cc201c9a513ccb.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
buildDuration 13s 13.3s ⚠️ +262ms
nodeModulesSize 65.2 MB 65.2 MB ⚠️ +1.42 kB
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
main-HASH.js gzip 6.59 kB 6.59 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..8679.js gzip 10.5 kB N/A N/A
framework.HASH.js gzip 39.1 kB 39.1 kB
de003c3a9d30..21ef.js gzip N/A 10.5 kB N/A
Overall change 57 kB 57 kB ⚠️ +10 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
main-HASH.module.js gzip 5.67 kB 5.67 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.92 kB N/A N/A
framework.HA..dule.js gzip 39.1 kB 39.1 kB
de003c3a9d30..dule.js gzip N/A 6.93 kB N/A
Overall change 52.5 kB 52.5 kB ⚠️ +7 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Janpot/next.js optional-static-paths Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
vercel/next.js canary Janpot/next.js optional-static-paths Change
_app.js gzip 1.26 kB 1.26 kB
_error.js gzip 3.25 kB 3.25 kB
hooks.js gzip 881 B 881 B
index.js gzip 222 B 222 B
link.js gzip 2.06 kB 2.06 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 8.22 kB 8.22 kB
Client Pages Modern
vercel/next.js canary Janpot/next.js optional-static-paths Change
_app.module.js gzip 604 B 604 B
_error.module.js gzip 2.04 kB 2.04 kB
hooks.module.js gzip 383 B 383 B
index.module.js gzip 223 B 223 B
link.module.js gzip 1.52 kB 1.52 kB
routerDirect..dule.js gzip 281 B 281 B
withRouter.m..dule.js gzip 278 B 278 B
Overall change 5.33 kB 5.33 kB
Client Build Manifests
vercel/next.js canary Janpot/next.js optional-static-paths 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 ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
_error.js 877 kB 877 kB
404.html 4.18 kB 4.18 kB
hooks.html 3.81 kB 3.81 kB
index.js 877 kB 877 kB
link.js 915 kB 915 kB ⚠️ +28 B
routerDirect.js 907 kB 907 kB ⚠️ +28 B
withRouter.js 907 kB 907 kB ⚠️ +28 B
Overall change 4.49 MB 4.49 MB ⚠️ +84 B

@Timer Timer added this to the 9.4.5 milestone Jun 1, 2020
Copy link
Member

@Timer Timer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent work, thank you!

@ijjk
Copy link
Member

ijjk commented Jun 1, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
buildDuration 12s 12.3s ⚠️ +362ms
nodeModulesSize 65.2 MB 65.2 MB ⚠️ +1.42 kB
Page Load Tests Overall increase ✓
vercel/next.js canary Janpot/next.js optional-static-paths Change
/ failed reqs 0 0
/ total time (seconds) 2.1 2.108 ⚠️ +0.01
/ avg req/sec 1190.45 1185.89 -4.56
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.219 1.2 -0.02
/error-in-render avg req/sec 2050.28 2083.76 ⚠️ +33.48
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
main-HASH.js gzip 6.59 kB 6.59 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..8679.js gzip 10.5 kB 10.5 kB ⚠️ +10 B
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 57 kB 57 kB ⚠️ +10 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
main-HASH.module.js gzip 5.67 kB 5.67 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.92 kB 6.93 kB ⚠️ +7 B
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.5 kB 52.5 kB ⚠️ +7 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Janpot/next.js optional-static-paths Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
vercel/next.js canary Janpot/next.js optional-static-paths Change
_app.js gzip 1.26 kB 1.26 kB
_error.js gzip 3.25 kB 3.25 kB
hooks.js gzip 881 B 881 B
index.js gzip 222 B 222 B
link.js gzip 2.06 kB 2.06 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 8.22 kB 8.22 kB
Client Pages Modern
vercel/next.js canary Janpot/next.js optional-static-paths Change
_app.module.js gzip 604 B 604 B
_error.module.js gzip 2.04 kB 2.04 kB
hooks.module.js gzip 383 B 383 B
index.module.js gzip 223 B 223 B
link.module.js gzip 1.52 kB 1.52 kB
routerDirect..dule.js gzip 281 B 281 B
withRouter.m..dule.js gzip 278 B 278 B
Overall change 5.33 kB 5.33 kB
Client Build Manifests
vercel/next.js canary Janpot/next.js optional-static-paths 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 Overall decrease ✓
vercel/next.js canary Janpot/next.js optional-static-paths Change
index.html gzip 927 B 926 B -1 B
link.html gzip 937 B 935 B -2 B
withRouter.html gzip 923 B 923 B
Overall change 2.79 kB 2.78 kB -3 B

Diffs

Diff for de003c3a9d30..a18624191.js
@@ -548,7 +548,8 @@
                 .replace(/\\([|\\{}()[\]^$+*?.-])/g, "$1") // eslint-disable-next-line no-sequences
             ] = {
               pos: groupIndex++,
-              repeat: isCatchAll
+              repeat: isCatchAll,
+              optional: isOptional
             };
             return isCatchAll
               ? isOptional
Diff for de003c3a9d30..08.module.js
@@ -470,7 +470,8 @@
                 .replace(/\\([|\\{}()[\]^$+*?.-])/g, "$1") // eslint-disable-next-line no-sequences
             ] = {
               pos: groupIndex++,
-              repeat: isCatchAll
+              repeat: isCatchAll,
+              optional: isOptional
             };
             return isCatchAll
               ? isOptional
Diff for index.html
@@ -30,7 +30,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -133,13 +133,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.3db71069b12a18624191.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.af1e06cc201c9a513ccb.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -30,7 +30,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -138,13 +138,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.3db71069b12a18624191.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.af1e06cc201c9a513ccb.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -30,7 +30,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -133,13 +133,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.3db71069b12a18624191.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.af1e06cc201c9a513ccb.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.98d04be1fd209669b708.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.41641d95dc96d5d4377a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
buildDuration 13.6s 13.3s -337ms
nodeModulesSize 65.2 MB 65.2 MB ⚠️ +1.42 kB
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
main-HASH.js gzip 6.59 kB 6.59 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..8679.js gzip 10.5 kB N/A N/A
framework.HASH.js gzip 39.1 kB 39.1 kB
de003c3a9d30..21ef.js gzip N/A 10.5 kB N/A
Overall change 57 kB 57 kB ⚠️ +10 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
main-HASH.module.js gzip 5.67 kB 5.67 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.92 kB N/A N/A
framework.HA..dule.js gzip 39.1 kB 39.1 kB
de003c3a9d30..dule.js gzip N/A 6.93 kB N/A
Overall change 52.5 kB 52.5 kB ⚠️ +7 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Janpot/next.js optional-static-paths Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
vercel/next.js canary Janpot/next.js optional-static-paths Change
_app.js gzip 1.26 kB 1.26 kB
_error.js gzip 3.25 kB 3.25 kB
hooks.js gzip 881 B 881 B
index.js gzip 222 B 222 B
link.js gzip 2.06 kB 2.06 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 8.22 kB 8.22 kB
Client Pages Modern
vercel/next.js canary Janpot/next.js optional-static-paths Change
_app.module.js gzip 604 B 604 B
_error.module.js gzip 2.04 kB 2.04 kB
hooks.module.js gzip 383 B 383 B
index.module.js gzip 223 B 223 B
link.module.js gzip 1.52 kB 1.52 kB
routerDirect..dule.js gzip 281 B 281 B
withRouter.m..dule.js gzip 278 B 278 B
Overall change 5.33 kB 5.33 kB
Client Build Manifests
vercel/next.js canary Janpot/next.js optional-static-paths 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 ⚠️
vercel/next.js canary Janpot/next.js optional-static-paths Change
_error.js 877 kB 877 kB
404.html 4.18 kB 4.18 kB
hooks.html 3.81 kB 3.81 kB
index.js 877 kB 877 kB
link.js 915 kB 915 kB ⚠️ +28 B
routerDirect.js 907 kB 907 kB ⚠️ +28 B
withRouter.js 907 kB 907 kB ⚠️ +28 B
Overall change 4.49 MB 4.49 MB ⚠️ +84 B

@kodiakhq kodiakhq bot merged commit 8bac412 into vercel:canary Jun 1, 2020
rokinsky pushed a commit to rokinsky/next.js that referenced this pull request Jul 11, 2020
Fixes vercel#13524

To do:
- [x] fix dev mode
- [x] there's a ~route ordering or~ trailing slash issue with top level catch-all (current tests reflect that)
- [x] in this test `/get-static-paths/whatever` should fall back to `/[[...optionalName]].js` since `fallback` is `false` in its `getStaticPaths` method. ~Currently seems to 500~ must have been a glitch
- [x] add tests for `null`, `undefined` ~and `false`~ behavior as well (if decided these are valid)
- [x] ~add tests for string params as well~ this is not allowed for catch-all routes
- [x] test behavior when fallback is enabled and a top level catch-all exists
@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.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Experimental optional catch all routes getStaticProps receive stringified array instead of array
3 participants