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

Enforce natural numbers for SPR #8882

Merged
merged 1 commit into from
Sep 27, 2019
Merged

Conversation

Timer
Copy link
Member

@Timer Timer commented Sep 27, 2019

Per the HTTP specification, only natural numbers may be used for caching durations. We should enforce this with a really helpful error message.

Given the following page:

import Link from 'next/link'

export function unstable_getStaticProps() {
  return { props: { foo: 'bar' }, revalidate: 1.5 }
}

export default () => (
  <div>
    Hello World.{' '}
    <Link href="/about">
      <a>About</a>
    </Link>
  </div>
)

Displayed in browser:
image

Per the HTTP specification, only natural numbers may be used for caching durations. We should enforce this with a really helpful error message.
@Timer Timer added this to the 9.0.7 milestone Sep 27, 2019
@ijjk
Copy link
Member

ijjk commented Sep 27, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Timer/next.js enforce-natural-numbers Change
buildDuration 14.5s 14s -427ms
nodeModulesSize 48.2 MB 48.2 MB ⚠️ +939 B
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js enforce-natural-numbers Change
main-HASH.js 18.3 kB 18.3 kB
main-HASH.js gzip 6.64 kB 6.64 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..2b8407376.js 21.9 kB 21.9 kB
4952ddcd88e7..7376.js gzip 7.81 kB 7.81 kB
de003c3a9d30..2ca0edb75.js 43.2 kB 43.2 kB
de003c3a9d30..db75.js gzip 15.5 kB 15.5 kB
framework.5b..dbaff70d3.js 125 kB 125 kB
framework.5b..70d3.js gzip 39.4 kB 39.4 kB
Overall change 210 kB 210 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js enforce-natural-numbers Change
main-HASH.module.js 16.5 kB 16.5 kB
main-HASH.module.js gzip 6.39 kB 6.39 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..c0.module.js 45.6 kB 45.6 kB
de003c3a9d30..dule.js gzip 16.5 kB 16.5 kB
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
Overall change 189 kB 189 kB
Client Pages
zeit/next.js canary Timer/next.js enforce-natural-numbers Change
_app.js 1.81 kB 1.81 kB
_app.js gzip 873 B 873 B
_error.js 12 kB 12 kB
_error.js gzip 4.73 kB 4.73 kB
hooks.js 12.7 kB 12.7 kB
hooks.js gzip 4.79 kB 4.79 kB
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 8.14 kB 8.14 kB
link.js gzip 3.5 kB 3.5 kB
routerDirect.js 408 B 408 B
routerDirect.js gzip 281 B 281 B
withRouter.js 419 B 419 B
withRouter.js gzip 280 B 280 B
Overall change 35.8 kB 35.8 kB
Client Pages Modern
zeit/next.js canary Timer/next.js enforce-natural-numbers Change
_app.module.js 1.7 kB 1.7 kB
_app.module.js gzip 832 B 832 B
_error.module.js 23.3 kB 23.3 kB
_error.module.js gzip 8.59 kB 8.59 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 793 B 793 B
index.module.js 294 B 294 B
index.module.js gzip 223 B 223 B
link.module.js 8.53 kB 8.53 kB
link.module.js gzip 3.68 kB 3.68 kB
routerDirect.module.js 394 B 394 B
routerDirect..dule.js gzip 281 B 281 B
withRouter.module.js 404 B 404 B
withRouter.m..dule.js gzip 278 B 278 B
Overall change 36.1 kB 36.1 kB
Client Build Manifests
zeit/next.js canary Timer/next.js enforce-natural-numbers Change
_buildManifest.js 81 B 81 B
_buildManifest.js gzip 61 B 61 B
_buildManifest.module.js 81 B 81 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 162 B 162 B
Rendered Page Sizes
zeit/next.js canary Timer/next.js enforce-natural-numbers Change
index.html 3.62 kB 3.62 kB
index.html gzip 947 B 947 B
link.html 3.66 kB 3.66 kB
link.html gzip 955 B 955 B
withRouter.html 3.67 kB 3.67 kB
withRouter.html gzip 943 B 943 B
Overall change 10.9 kB 10.9 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Timer/next.js enforce-natural-numbers Change
buildDuration 14.1s 14s -173ms
nodeModulesSize 48.2 MB 48.2 MB ⚠️ +939 B
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js enforce-natural-numbers Change
main-HASH.js 18.3 kB 18.3 kB
main-HASH.js gzip 6.64 kB 6.64 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..2b8407376.js 21.9 kB 21.9 kB
4952ddcd88e7..7376.js gzip 7.81 kB 7.81 kB
de003c3a9d30..2ca0edb75.js 43.2 kB 43.2 kB
de003c3a9d30..db75.js gzip 15.5 kB 15.5 kB
framework.5b..dbaff70d3.js 125 kB 125 kB
framework.5b..70d3.js gzip 39.4 kB 39.4 kB
Overall change 210 kB 210 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js enforce-natural-numbers Change
main-HASH.module.js 16.5 kB 16.5 kB
main-HASH.module.js gzip 6.39 kB 6.39 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..c0.module.js 45.6 kB 45.6 kB
de003c3a9d30..dule.js gzip 16.5 kB 16.5 kB
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
Overall change 189 kB 189 kB
Client Pages
zeit/next.js canary Timer/next.js enforce-natural-numbers Change
_app.js 1.81 kB 1.81 kB
_app.js gzip 873 B 873 B
_error.js 12 kB 12 kB
_error.js gzip 4.73 kB 4.73 kB
hooks.js 12.7 kB 12.7 kB
hooks.js gzip 4.79 kB 4.79 kB
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 8.14 kB 8.14 kB
link.js gzip 3.5 kB 3.5 kB
routerDirect.js 408 B 408 B
routerDirect.js gzip 281 B 281 B
withRouter.js 419 B 419 B
withRouter.js gzip 280 B 280 B
Overall change 35.8 kB 35.8 kB
Client Pages Modern
zeit/next.js canary Timer/next.js enforce-natural-numbers Change
_app.module.js 1.7 kB 1.7 kB
_app.module.js gzip 832 B 832 B
_error.module.js 23.3 kB 23.3 kB
_error.module.js gzip 8.59 kB 8.59 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 793 B 793 B
index.module.js 294 B 294 B
index.module.js gzip 223 B 223 B
link.module.js 8.53 kB 8.53 kB
link.module.js gzip 3.68 kB 3.68 kB
routerDirect.module.js 394 B 394 B
routerDirect..dule.js gzip 281 B 281 B
withRouter.module.js 404 B 404 B
withRouter.m..dule.js gzip 278 B 278 B
Overall change 36.1 kB 36.1 kB
Client Build Manifests
zeit/next.js canary Timer/next.js enforce-natural-numbers Change
_buildManifest.js 81 B 81 B
_buildManifest.js gzip 61 B 61 B
_buildManifest.module.js 81 B 81 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 162 B 162 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary Timer/next.js enforce-natural-numbers Change
_error.js 253 kB 253 kB ⚠️ +460 B
_error.js gzip 67.6 kB 67.8 kB ⚠️ +133 B
hooks.html 3.75 kB 3.75 kB
hooks.html gzip 980 B 980 B
index.js 253 kB 253 kB ⚠️ +460 B
index.js gzip 68 kB 68.1 kB ⚠️ +133 B
link.js 261 kB 261 kB ⚠️ +460 B
link.js gzip 70 kB 70.1 kB ⚠️ +132 B
routerDirect.js 254 kB 254 kB ⚠️ +460 B
routerDirect.js gzip 68 kB 68.1 kB ⚠️ +133 B
withRouter.js 254 kB 254 kB ⚠️ +460 B
withRouter.js gzip 68.1 kB 68.2 kB ⚠️ +132 B
Overall change 1.28 MB 1.28 MB ⚠️ +2.3 kB

Commit: eca23eb

@Timer Timer merged commit 01e5471 into vercel:canary Sep 27, 2019
@Timer Timer deleted the enforce-natural-numbers branch September 27, 2019 16:46
@vercel vercel locked as resolved and limited conversation to collaborators Feb 1, 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.

2 participants