Skip to content

Conversation

@maxigimenez
Copy link
Contributor

  • Define a re-usable type for config

@ijjk
Copy link
Member

ijjk commented May 27, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
buildDuration 12.6s 12s -536ms
nodeModulesSize 67.3 MB 67.3 MB -82 B
Page Load Tests Overall decrease ⚠️
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
/ failed reqs 0 0
/ total time (seconds) 2.208 2.185 -0.02
/ avg req/sec 1132.27 1143.93 ⚠️ +11.66
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.363 1.421 ⚠️ +0.06
/error-in-render avg req/sec 1833.54 1758.72 -74.82
Client Bundles (main, webpack, commons)
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
main-HASH.js gzip 6.59 kB 6.59 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..c03c.js gzip 10.5 kB 10.5 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 57 kB 57 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type 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.92 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.5 kB 52.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type 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
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type 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
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type 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 maxigimenez/next.js chore/next-server-config-type Change
index.html gzip 927 B 927 B
link.html gzip 936 B 936 B
withRouter.html gzip 925 B 925 B
Overall change 2.79 kB 2.79 kB

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
buildDuration 13.8s 13.8s ⚠️ +20ms
nodeModulesSize 67.3 MB 67.3 MB -82 B
Client Bundles (main, webpack, commons)
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
main-HASH.js gzip 6.59 kB 6.59 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..c03c.js gzip 10.5 kB 10.5 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 57 kB 57 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type 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.92 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.5 kB 52.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type 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
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type 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
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
_error.js 876 kB 876 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 914 kB 914 kB
routerDirect.js 907 kB 907 kB
withRouter.js 907 kB 907 kB
Overall change 4.49 MB 4.49 MB

@Janpot
Copy link
Contributor

Janpot commented May 27, 2020

Would it be an idea to also expose it publicly so developers can do

// ./next.config.js
module.exports = /** @type {import('next').Config} */({
  // ...
})

and get type checking for free (if they enable type checking for js).

@ijjk
Copy link
Member

ijjk commented May 27, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
buildDuration 13.8s 13.2s -513ms
nodeModulesSize 67.3 MB 67.3 MB ⚠️ +2.51 kB
Page Load Tests Overall increase ✓
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
/ failed reqs 0 0
/ total time (seconds) 2.32 2.315 0
/ avg req/sec 1077.53 1079.75 ⚠️ +2.22
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.508 1.456 -0.05
/error-in-render avg req/sec 1657.45 1717.17 ⚠️ +59.72
Client Bundles (main, webpack, commons)
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
main-HASH.js gzip 6.59 kB 6.59 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..c03c.js gzip 10.5 kB 10.5 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 57 kB 57 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type 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.92 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.5 kB 52.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type 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
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type 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
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type 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 maxigimenez/next.js chore/next-server-config-type Change
index.html gzip 927 B 927 B
link.html gzip 936 B 936 B
withRouter.html gzip 925 B 925 B
Overall change 2.79 kB 2.79 kB

Serverless Mode
General Overall increase ⚠️
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
buildDuration 14.8s 14.4s -398ms
nodeModulesSize 67.3 MB 67.3 MB ⚠️ +2.51 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
main-HASH.js gzip 6.59 kB 6.59 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..c03c.js gzip 10.5 kB 10.5 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 57 kB 57 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type 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.92 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.5 kB 52.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type 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
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type 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
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles
zeit/next.js canary maxigimenez/next.js chore/next-server-config-type Change
_error.js 876 kB 876 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 914 kB 914 kB
routerDirect.js 907 kB 907 kB
withRouter.js 907 kB 907 kB
Overall change 4.49 MB 4.49 MB

@Timer Timer self-assigned this May 27, 2020
@maxigimenez maxigimenez marked this pull request as draft May 29, 2020 09:59
@maxigimenez maxigimenez marked this pull request as ready for review May 30, 2020 12:46
@ijjk ijjk added the type: next label Jun 6, 2020
@maxigimenez
Copy link
Contributor Author

@Timer ready for review :)

@ijjk
Copy link
Member

ijjk commented Jun 6, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary maxigimenez/next.js chore/next-server-config-type Change
buildDuration 12s 12.2s ⚠️ +281ms
nodeModulesSize 66 MB 66 MB ⚠️ +3.29 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary maxigimenez/next.js chore/next-server-config-type Change
/ failed reqs 0 0
/ total time (seconds) 2.006 2.039 ⚠️ +0.03
/ avg req/sec 1246.14 1226.1 -20.04
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.113 1.126 ⚠️ +0.01
/error-in-render avg req/sec 2246.97 2220.56 -26.41
Client Bundles (main, webpack, commons)
vercel/next.js canary maxigimenez/next.js chore/next-server-config-type Change
main-HASH.js gzip 6.61 kB 6.61 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..9545.js gzip 10.5 kB 10.5 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 57 kB 57 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary maxigimenez/next.js chore/next-server-config-type Change
main-HASH.module.js gzip 5.69 kB 5.69 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.92 kB 6.92 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.5 kB 52.5 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary maxigimenez/next.js chore/next-server-config-type 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 maxigimenez/next.js chore/next-server-config-type 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.05 kB 2.05 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 8.21 kB 8.21 kB
Client Pages Modern
vercel/next.js canary maxigimenez/next.js chore/next-server-config-type 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.51 kB 1.51 kB
routerDirect..dule.js gzip 281 B 281 B
withRouter.m..dule.js gzip 278 B 278 B
Overall change 5.32 kB 5.32 kB
Client Build Manifests
vercel/next.js canary maxigimenez/next.js chore/next-server-config-type 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
vercel/next.js canary maxigimenez/next.js chore/next-server-config-type Change
index.html gzip 927 B 927 B
link.html gzip 936 B 936 B
withRouter.html gzip 924 B 924 B
Overall change 2.79 kB 2.79 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary maxigimenez/next.js chore/next-server-config-type Change
buildDuration 13s 12.8s -127ms
nodeModulesSize 66 MB 66 MB ⚠️ +3.29 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary maxigimenez/next.js chore/next-server-config-type Change
main-HASH.js gzip 6.61 kB 6.61 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..9545.js gzip 10.5 kB 10.5 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 57 kB 57 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary maxigimenez/next.js chore/next-server-config-type Change
main-HASH.module.js gzip 5.69 kB 5.69 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.92 kB 6.92 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.5 kB 52.5 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary maxigimenez/next.js chore/next-server-config-type 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 maxigimenez/next.js chore/next-server-config-type 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.05 kB 2.05 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 8.21 kB 8.21 kB
Client Pages Modern
vercel/next.js canary maxigimenez/next.js chore/next-server-config-type 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.51 kB 1.51 kB
routerDirect..dule.js gzip 281 B 281 B
withRouter.m..dule.js gzip 278 B 278 B
Overall change 5.32 kB 5.32 kB
Client Build Manifests
vercel/next.js canary maxigimenez/next.js chore/next-server-config-type Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles
vercel/next.js canary maxigimenez/next.js chore/next-server-config-type Change
_error.js 878 kB 878 kB
404.html 4.18 kB 4.18 kB
hooks.html 3.81 kB 3.81 kB
index.js 878 kB 878 kB
link.js 916 kB 916 kB
routerDirect.js 909 kB 909 kB
withRouter.js 909 kB 909 kB
Overall change 4.5 MB 4.5 MB

@PabloSzx
Copy link
Contributor

These definitions are at least missing https://nextjs.org/docs/api-reference/next.config.js/rewrites and https://nextjs.org/docs/api-reference/next.config.js/redirects, and the Config interface has to be exported in order to be actually reusable

@maxigimenez
Copy link
Contributor Author

Closing this for now, is too updated

@pspeter3
Copy link

Is it possible to write the next config in TypeScript too?

@vercel vercel locked as resolved and limited conversation to collaborators Jan 29, 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.

6 participants