-
Notifications
You must be signed in to change notification settings - Fork 28.2k
Generic form of GetStaticProps and GetServerSideProps #10856
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
Conversation
Stats from current PRDefault Server ModeGeneral Overall increase
|
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
buildDuration | 10.5s | 10.4s | -120ms |
nodeModulesSize | 56.5 MB | 56.5 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
main-HASH.js gzip | 5.77 kB | 5.77 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..23c3.js gzip | 9.72 kB | 9.72 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 55.4 kB | 55.4 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
main-HASH.module.js gzip | 4.79 kB | 4.79 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.66 kB | 6.66 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 51.3 kB | 51.3 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | herrstucki/next.js staticprops-generics | 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_app.js gzip | 1.08 kB | 1.08 kB | ✓ |
_error.js gzip | 2.96 kB | 2.96 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.37 kB | 7.37 kB | ✓ |
Client Pages Modern
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_app.module.js gzip | 589 B | 589 B | ✓ |
_error.module.js gzip | 2.06 kB | 2.06 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.26 kB | 5.26 kB | ✓ |
Client Build Manifests
zeit/next.js canary | herrstucki/next.js staticprops-generics | 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
index.html gzip | 918 B | 918 B | ✓ |
link.html gzip | 926 B | 926 B | ✓ |
withRouter.html gzip | 915 B | 915 B | ✓ |
Overall change | 2.76 kB | 2.76 kB | ✓ |
Serverless Mode (Decrease detected ✓)
General Overall increase ⚠️
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
buildDuration | 11.1s | 11.5s | |
nodeModulesSize | 56.5 MB | 56.5 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
main-HASH.js gzip | 5.77 kB | 5.77 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..23c3.js gzip | 9.72 kB | 9.72 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 55.4 kB | 55.4 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
main-HASH.module.js gzip | 4.79 kB | 4.79 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.66 kB | 6.66 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 51.3 kB | 51.3 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | herrstucki/next.js staticprops-generics | 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_app.js gzip | 1.08 kB | 1.08 kB | ✓ |
_error.js gzip | 2.96 kB | 2.96 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.37 kB | 7.37 kB | ✓ |
Client Pages Modern
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_app.module.js gzip | 589 B | 589 B | ✓ |
_error.module.js gzip | 2.06 kB | 2.06 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.26 kB | 5.26 kB | ✓ |
Client Build Manifests
zeit/next.js canary | herrstucki/next.js staticprops-generics | 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_error.js gzip | 292 kB | 292 kB | |
404.html gzip | 1.32 kB | 1.32 kB | ✓ |
hooks.html gzip | 957 B | 957 B | ✓ |
index.js gzip | 292 kB | 292 kB | -455 B |
link.js gzip | 300 kB | 300 kB | -722 B |
routerDirect.js gzip | 298 kB | 298 kB | -156 B |
withRouter.js gzip | 298 kB | 298 kB | -102 B |
Overall change | 1.48 MB | 1.48 MB | -1.41 kB |
I would add a test but I'm not sure where 😅 |
Stats from current PRDefault Server ModeGeneral Overall increase
|
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
buildDuration | 10.5s | 10.5s | |
nodeModulesSize | 56.5 MB | 56.5 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
main-HASH.js gzip | 5.77 kB | 5.77 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..23c3.js gzip | 9.72 kB | 9.72 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 55.4 kB | 55.4 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
main-HASH.module.js gzip | 4.79 kB | 4.79 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.66 kB | 6.66 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 51.3 kB | 51.3 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | herrstucki/next.js staticprops-generics | 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_app.js gzip | 1.08 kB | 1.08 kB | ✓ |
_error.js gzip | 2.96 kB | 2.96 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.37 kB | 7.37 kB | ✓ |
Client Pages Modern
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_app.module.js gzip | 589 B | 589 B | ✓ |
_error.module.js gzip | 2.06 kB | 2.06 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.26 kB | 5.26 kB | ✓ |
Client Build Manifests
zeit/next.js canary | herrstucki/next.js staticprops-generics | 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
index.html gzip | 918 B | 918 B | ✓ |
link.html gzip | 926 B | 926 B | ✓ |
withRouter.html gzip | 915 B | 915 B | ✓ |
Overall change | 2.76 kB | 2.76 kB | ✓ |
Serverless Mode (Decrease detected ✓)
General Overall increase ⚠️
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
buildDuration | 11.2s | 11.3s | |
nodeModulesSize | 56.5 MB | 56.5 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
main-HASH.js gzip | 5.77 kB | 5.77 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..23c3.js gzip | 9.72 kB | 9.72 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 55.4 kB | 55.4 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
main-HASH.module.js gzip | 4.79 kB | 4.79 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.66 kB | 6.66 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 51.3 kB | 51.3 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | herrstucki/next.js staticprops-generics | 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_app.js gzip | 1.08 kB | 1.08 kB | ✓ |
_error.js gzip | 2.96 kB | 2.96 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.37 kB | 7.37 kB | ✓ |
Client Pages Modern
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_app.module.js gzip | 589 B | 589 B | ✓ |
_error.module.js gzip | 2.06 kB | 2.06 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.26 kB | 5.26 kB | ✓ |
Client Build Manifests
zeit/next.js canary | herrstucki/next.js staticprops-generics | 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_error.js gzip | 293 kB | 292 kB | -691 B |
404.html gzip | 1.32 kB | 1.32 kB | ✓ |
hooks.html gzip | 957 B | 957 B | ✓ |
index.js gzip | 292 kB | 292 kB | |
link.js gzip | 300 kB | 300 kB | -52 B |
routerDirect.js gzip | 299 kB | 299 kB | -8 B |
withRouter.js gzip | 298 kB | 298 kB | -389 B |
Overall change | 1.48 MB | 1.48 MB | -544 B |
Stats from current PRDefault Server ModeGeneral Overall increase
|
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
buildDuration | 10.4s | 10.6s | |
nodeModulesSize | 56.5 MB | 56.5 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
main-HASH.js gzip | 5.77 kB | 5.77 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..23c3.js gzip | 9.72 kB | 9.72 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 55.4 kB | 55.4 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
main-HASH.module.js gzip | 4.79 kB | 4.79 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.66 kB | 6.66 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 51.3 kB | 51.3 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | herrstucki/next.js staticprops-generics | 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_app.js gzip | 1.08 kB | 1.08 kB | ✓ |
_error.js gzip | 2.96 kB | 2.96 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.37 kB | 7.37 kB | ✓ |
Client Pages Modern
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_app.module.js gzip | 589 B | 589 B | ✓ |
_error.module.js gzip | 2.06 kB | 2.06 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.26 kB | 5.26 kB | ✓ |
Client Build Manifests
zeit/next.js canary | herrstucki/next.js staticprops-generics | 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
index.html gzip | 918 B | 918 B | ✓ |
link.html gzip | 926 B | 926 B | ✓ |
withRouter.html gzip | 915 B | 915 B | ✓ |
Overall change | 2.76 kB | 2.76 kB | ✓ |
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
buildDuration | 11.3s | 11.3s | |
nodeModulesSize | 56.5 MB | 56.5 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
main-HASH.js gzip | 5.77 kB | 5.77 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..23c3.js gzip | 9.72 kB | 9.72 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 55.4 kB | 55.4 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
main-HASH.module.js gzip | 4.79 kB | 4.79 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.66 kB | 6.66 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 51.3 kB | 51.3 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | herrstucki/next.js staticprops-generics | 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_app.js gzip | 1.08 kB | 1.08 kB | ✓ |
_error.js gzip | 2.96 kB | 2.96 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.37 kB | 7.37 kB | ✓ |
Client Pages Modern
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_app.module.js gzip | 589 B | 589 B | ✓ |
_error.module.js gzip | 2.06 kB | 2.06 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.26 kB | 5.26 kB | ✓ |
Client Build Manifests
zeit/next.js canary | herrstucki/next.js staticprops-generics | 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_error.js gzip | 292 kB | 292 kB | -566 B |
404.html gzip | 1.32 kB | 1.32 kB | ✓ |
hooks.html gzip | 957 B | 957 B | ✓ |
index.js gzip | 292 kB | 292 kB | -452 B |
link.js gzip | 299 kB | 299 kB | -3 B |
routerDirect.js gzip | 298 kB | 298 kB | |
withRouter.js gzip | 298 kB | 299 kB | |
Overall change | 1.48 MB | 1.48 MB |
@schickling highlighted an interesting generic type that might be better than doing this: https://github.com/schickling/next-prisma2/blob/master/pages/index.tsx#L18 |
@timneutkens that approach will work fine: type ThenArg<T> = T extends PromiseLike<infer U> ? U : T
type GetProps<T extends (...args: any) => any> = ThenArg<ReturnType<T>> extends { props: infer U } ? U : never
type GetStaticProps<P extends { [key: string]: any } = { [key: string]: any }> = (ctx: {
}) => Promise<{props: P}>
// Using the generic
const g: GetStaticProps<{foo:number}> = async () => {
return { props: { foo: 3 } }
}
// Inferring the type still works
const p = (props: GetProps<typeof g>) => {
props.foo // is number
props.bar // should show error
} I still prefer to add the generic because having the generic allows me to constrain what I can return from GS(S)P when writing the implementation of GS(S)P. |
Also, a generic GS(S)P aligns the type with |
Stats from current PRDefault Server ModeGeneral Overall increase
|
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
buildDuration | 8.8s | 8.9s | |
nodeModulesSize | 56.5 MB | 56.5 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
main-HASH.js gzip | 5.77 kB | 5.77 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..cfaa.js gzip | 9.77 kB | 9.77 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 55.4 kB | 55.4 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
main-HASH.module.js gzip | 4.78 kB | 4.78 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.71 kB | 6.71 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 51.4 kB | 51.4 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | herrstucki/next.js staticprops-generics | 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_app.js gzip | 1.09 kB | 1.09 kB | ✓ |
_error.js gzip | 2.96 kB | 2.96 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_app.module.js gzip | 594 B | 594 B | ✓ |
_error.module.js gzip | 2.06 kB | 2.06 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.26 kB | 5.26 kB | ✓ |
Client Build Manifests
zeit/next.js canary | herrstucki/next.js staticprops-generics | 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
index.html gzip | 915 B | 915 B | ✓ |
link.html gzip | 924 B | 924 B | ✓ |
withRouter.html gzip | 910 B | 910 B | ✓ |
Overall change | 2.75 kB | 2.75 kB | ✓ |
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
buildDuration | 9.8s | 9.6s | -220ms |
nodeModulesSize | 56.5 MB | 56.5 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
main-HASH.js gzip | 5.77 kB | 5.77 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..cfaa.js gzip | 9.77 kB | 9.77 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 55.4 kB | 55.4 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
main-HASH.module.js gzip | 4.78 kB | 4.78 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.71 kB | 6.71 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 51.4 kB | 51.4 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | herrstucki/next.js staticprops-generics | 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_app.js gzip | 1.09 kB | 1.09 kB | ✓ |
_error.js gzip | 2.96 kB | 2.96 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_app.module.js gzip | 594 B | 594 B | ✓ |
_error.module.js gzip | 2.06 kB | 2.06 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.26 kB | 5.26 kB | ✓ |
Client Build Manifests
zeit/next.js canary | herrstucki/next.js staticprops-generics | 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 | herrstucki/next.js staticprops-generics | Change | |
---|---|---|---|
_error.js gzip | 292 kB | 292 kB | |
404.html gzip | 1.32 kB | 1.32 kB | ✓ |
hooks.html gzip | 955 B | 955 B | ✓ |
index.js gzip | 292 kB | 292 kB | -267 B |
link.js gzip | 299 kB | 300 kB | |
routerDirect.js gzip | 299 kB | 299 kB | -21 B |
withRouter.js gzip | 298 kB | 298 kB | -48 B |
Overall change | 1.48 MB | 1.48 MB |
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.
LGTM, thanks!
* Generic form of GetStaticProps and GetServerSideProps * Oops, fix type! * Add constraint for P * Update packages/next/types/index.d.ts Co-authored-by: Joe Haddad <timer150@gmail.com> Co-authored-by: Joe Haddad <joe.haddad@zeit.co>
Add generic form for the GS(S)P type, so it's possible to reuse a page's prop type. E.g.