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

Generic form of GetStaticProps and GetServerSideProps #10856

Merged
merged 8 commits into from Mar 12, 2020

Conversation

jstcki
Copy link
Contributor

@jstcki jstcki commented Mar 5, 2020

Add generic form for the GS(S)P type, so it's possible to reuse a page's prop type. E.g.

type MyProps = { slug: string };
export default (props: MyProps) => ...
export const getStaticProps: GetStaticProps<MyProps> = async (ctx) => ... 

@ijjk
Copy link
Member

ijjk commented Mar 5, 2020

Stats from current PR

Default Server Mode
General 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 ⚠️ +14 B
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 ⚠️ +396ms
nodeModulesSize 56.5 MB 56.5 MB ⚠️ +14 B
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 ⚠️ +21 B
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

@jstcki
Copy link
Contributor Author

jstcki commented Mar 5, 2020

I would add a test but I'm not sure where 😅

@ijjk
Copy link
Member

ijjk commented Mar 5, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary herrstucki/next.js staticprops-generics Change
buildDuration 10.5s 10.5s ⚠️ +15ms
nodeModulesSize 56.5 MB 56.5 MB ⚠️ +14 B
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 ⚠️ +86ms
nodeModulesSize 56.5 MB 56.5 MB ⚠️ +14 B
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 ⚠️ +596 B
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

@ijjk
Copy link
Member

ijjk commented Mar 5, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary herrstucki/next.js staticprops-generics Change
buildDuration 10.4s 10.6s ⚠️ +259ms
nodeModulesSize 56.5 MB 56.5 MB ⚠️ +84 B
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 ⚠️ +51ms
nodeModulesSize 56.5 MB 56.5 MB ⚠️ +84 B
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 ⚠️ +5 B
withRouter.js gzip 298 kB 299 kB ⚠️ +1.02 kB
Overall change 1.48 MB 1.48 MB ⚠️ +9 B

@timneutkens
Copy link
Member

@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

@jstcki
Copy link
Contributor Author

jstcki commented Mar 6, 2020

@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
}

See in TS Playground

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.

@jstcki
Copy link
Contributor Author

jstcki commented Mar 6, 2020

Also, a generic GS(S)P aligns the type with NextPage which also has a generic argument for props. Again, using @schickling's approach will still work on top of that – but it's optional (as is using the generic argument).

@ijjk
Copy link
Member

ijjk commented Mar 6, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary herrstucki/next.js staticprops-generics Change
buildDuration 8.8s 8.9s ⚠️ +82ms
nodeModulesSize 56.5 MB 56.5 MB ⚠️ +84 B
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 ⚠️ +84 B
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 ⚠️ +283 B
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 ⚠️ +245 B
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 ⚠️ +192 B

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.

LGTM, thanks!

packages/next/types/index.d.ts Outdated Show resolved Hide resolved
@Timer Timer added this to the 9.3.1 milestone Mar 12, 2020
@Timer Timer merged commit 861257b into vercel:canary Mar 12, 2020
@jstcki jstcki deleted the staticprops-generics branch March 12, 2020 13:29
ScriptedAlchemy pushed a commit to module-federation/next.js that referenced this pull request Mar 17, 2020
* 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>
@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
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants