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

Provide AppTree to getInitialProps for getDataFromTree #7732

Merged
merged 26 commits into from
Jul 30, 2019

Conversation

ijjk
Copy link
Member

@ijjk ijjk commented Jul 2, 2019

This allows using useRouter when calling getDataFromTree by providing an AppContainer that provides the context in the render tree.

Fixes: #7731
Fixes #6042

@github-actions
Copy link
Contributor

github-actions bot commented Jul 2, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 14.2s 13.8s -398ms
node_modules Size 45.2 MB 45.2 MB -4.1 kB
Total Bundle (main, webpack, commons) Size 213 kB 214 kB ⚠️ +174 B
Total Bundle (main, webpack, commons) gzip Size 70.1 kB 70.1 kB ⚠️ +54 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.7 kB ⚠️ +106 B
Client main gzip Size 9.14 kB 9.18 kB ⚠️ +33 B
Client commons Size 183 kB 183 kB ⚠️ +68 B
Client commons gzip Size 59.6 kB 59.6 kB ⚠️ +21 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.36 kB 1.36 kB
Build Dir Size 756 kB 756 kB -437 B
Click to expand serverless stats
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 16.2s 16.1s -168ms
node_modules Size 45.2 MB 45.2 MB -4.1 kB
Total Bundle (main, webpack, commons) Size 213 kB 214 kB ⚠️ +174 B
Total Bundle (main, webpack, commons) gzip Size 70.1 kB 70.1 kB ⚠️ +54 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB ⚠️ +1 B
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 224 B 222 B -2 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB ⚠️ +1 B
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.7 kB ⚠️ +106 B
Client main gzip Size 9.14 kB 9.18 kB ⚠️ +34 B
Client commons Size 183 kB 183 kB ⚠️ +68 B
Client commons gzip Size 59.6 kB 59.6 kB ⚠️ +21 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size Error getting size Error getting size
Serverless pages/link gzip Size Error getting size Error getting size
Serverless pages/index Size Error getting size Error getting size
Serverless pages/index gzip Size Error getting size Error getting size
Serverless pages/_error Size 329 kB 329 kB -174 B
Serverless pages/_error gzip Size 84.2 kB 84.2 kB ⚠️ +4 B
Serverless pages/routerDirect Size Error getting size Error getting size
Serverless pages/routerDirect gzip Size Error getting size Error getting size
Serverless pages/withRouter Size Error getting size Error getting size
Serverless pages/withRouter gzip Size Error getting size Error getting size
Build Dir Size 1.06 MB 1.06 MB -477 B

@github-actions
Copy link
Contributor

github-actions bot commented Jul 2, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 14.2s 13.5s -628ms
node_modules Size 45.2 MB 45.2 MB -3.02 kB
Total Bundle (main, webpack, commons) Size 213 kB 214 kB ⚠️ +442 B
Total Bundle (main, webpack, commons) gzip Size 70.1 kB 70.2 kB ⚠️ +110 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.8 kB ⚠️ +234 B
Client main gzip Size 9.14 kB 9.2 kB ⚠️ +55 B
Client commons Size 183 kB 183 kB ⚠️ +208 B
Client commons gzip Size 59.6 kB 59.7 kB ⚠️ +55 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.36 kB 1.36 kB
Build Dir Size 756 kB 757 kB ⚠️ +921 B
Click to expand serverless stats
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 15.9s 16.1s ⚠️ +225ms
node_modules Size 45.2 MB 45.2 MB -3.02 kB
Total Bundle (main, webpack, commons) Size 213 kB 214 kB ⚠️ +442 B
Total Bundle (main, webpack, commons) gzip Size 70.1 kB 70.2 kB ⚠️ +110 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.8 kB ⚠️ +234 B
Client main gzip Size 9.14 kB 9.2 kB ⚠️ +55 B
Client commons Size 183 kB 183 kB ⚠️ +208 B
Client commons gzip Size 59.6 kB 59.7 kB ⚠️ +55 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size Error getting size Error getting size
Serverless pages/link gzip Size Error getting size Error getting size
Serverless pages/index Size Error getting size Error getting size
Serverless pages/index gzip Size Error getting size Error getting size
Serverless pages/_error Size 329 kB 329 kB ⚠️ +454 B
Serverless pages/_error gzip Size 84.2 kB 84.3 kB ⚠️ +138 B
Serverless pages/routerDirect Size Error getting size Error getting size
Serverless pages/routerDirect gzip Size Error getting size Error getting size
Serverless pages/withRouter Size Error getting size Error getting size
Serverless pages/withRouter gzip Size Error getting size Error getting size
Build Dir Size 1.06 MB 1.06 MB ⚠️ +2.01 kB

@github-actions
Copy link
Contributor

github-actions bot commented Jul 2, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 14s 13.8s -278ms
node_modules Size 45.2 MB 45.2 MB ⚠️ +27 B
Total Bundle (main, webpack, commons) Size 213 kB 214 kB ⚠️ +442 B
Total Bundle (main, webpack, commons) gzip Size 70.1 kB 70.2 kB ⚠️ +110 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.8 kB ⚠️ +234 B
Client main gzip Size 9.14 kB 9.2 kB ⚠️ +55 B
Client commons Size 183 kB 183 kB ⚠️ +208 B
Client commons gzip Size 59.6 kB 59.7 kB ⚠️ +55 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.36 kB 1.36 kB
Build Dir Size 756 kB 757 kB ⚠️ +920 B
Click to expand serverless stats
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 16.4s 16.4s ⚠️ +3ms
node_modules Size 45.2 MB 45.2 MB ⚠️ +27 B
Total Bundle (main, webpack, commons) Size 213 kB 214 kB ⚠️ +442 B
Total Bundle (main, webpack, commons) gzip Size 70.1 kB 70.2 kB ⚠️ +110 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.8 kB ⚠️ +234 B
Client main gzip Size 9.14 kB 9.2 kB ⚠️ +55 B
Client commons Size 183 kB 183 kB ⚠️ +208 B
Client commons gzip Size 59.6 kB 59.7 kB ⚠️ +55 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size Error getting size Error getting size
Serverless pages/link gzip Size Error getting size Error getting size
Serverless pages/index Size Error getting size Error getting size
Serverless pages/index gzip Size Error getting size Error getting size
Serverless pages/_error Size 329 kB 329 kB ⚠️ +453 B
Serverless pages/_error gzip Size 84.2 kB 84.3 kB ⚠️ +138 B
Serverless pages/routerDirect Size Error getting size Error getting size
Serverless pages/routerDirect gzip Size Error getting size Error getting size
Serverless pages/withRouter Size Error getting size Error getting size
Serverless pages/withRouter gzip Size Error getting size Error getting size
Build Dir Size 1.06 MB 1.06 MB ⚠️ +2.01 kB

Timer
Timer previously requested changes Jul 3, 2019
@github-actions
Copy link
Contributor

github-actions bot commented Jul 3, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 14s 13.8s -191ms
node_modules Size 45.2 MB 45.2 MB ⚠️ +1.7 kB
Total Bundle (main, webpack, commons) Size 213 kB 214 kB ⚠️ +368 B
Total Bundle (main, webpack, commons) gzip Size 70.1 kB 70.2 kB ⚠️ +92 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB -1 B
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 224 B ⚠️ +2 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB -1 B
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.7 kB 27.8 kB ⚠️ +160 B
Client main gzip Size 9.16 kB 9.2 kB ⚠️ +36 B
Client commons Size 183 kB 183 kB ⚠️ +208 B
Client commons gzip Size 59.6 kB 59.7 kB ⚠️ +55 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.36 kB 1.36 kB
Build Dir Size 756 kB 757 kB ⚠️ +1.78 kB
Click to expand serverless stats
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 16s 16.4s ⚠️ +451ms
node_modules Size 45.2 MB 45.2 MB ⚠️ +1.7 kB
Total Bundle (main, webpack, commons) Size 213 kB 214 kB ⚠️ +368 B
Total Bundle (main, webpack, commons) gzip Size 70.1 kB 70.2 kB ⚠️ +92 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.7 kB 27.8 kB ⚠️ +160 B
Client main gzip Size 9.16 kB 9.2 kB ⚠️ +37 B
Client commons Size 183 kB 183 kB ⚠️ +208 B
Client commons gzip Size 59.6 kB 59.7 kB ⚠️ +55 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size Error getting size Error getting size
Serverless pages/link gzip Size Error getting size Error getting size
Serverless pages/index Size Error getting size Error getting size
Serverless pages/index gzip Size Error getting size Error getting size
Serverless pages/_error Size 329 kB 329 kB ⚠️ +829 B
Serverless pages/_error gzip Size 84.1 kB 84.3 kB ⚠️ +217 B
Serverless pages/routerDirect Size Error getting size Error getting size
Serverless pages/routerDirect gzip Size Error getting size Error getting size
Serverless pages/withRouter Size Error getting size Error getting size
Serverless pages/withRouter gzip Size Error getting size Error getting size
Build Dir Size 1.06 MB 1.06 MB ⚠️ +3.24 kB

@github-actions
Copy link
Contributor

github-actions bot commented Jul 3, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 14.1s 13.9s -114ms
node_modules Size 45.2 MB 45.2 MB ⚠️ +1.97 kB
Total Bundle (main, webpack, commons) Size 213 kB 214 kB ⚠️ +382 B
Total Bundle (main, webpack, commons) gzip Size 70.1 kB 70.2 kB ⚠️ +96 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB -1 B
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 224 B ⚠️ +2 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB -1 B
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.7 kB 27.9 kB ⚠️ +174 B
Client main gzip Size 9.16 kB 9.2 kB ⚠️ +40 B
Client commons Size 183 kB 183 kB ⚠️ +208 B
Client commons gzip Size 59.6 kB 59.7 kB ⚠️ +55 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.36 kB 1.36 kB
Build Dir Size 756 kB 758 kB ⚠️ +1.88 kB
Click to expand serverless stats
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 16.7s 16.5s -222ms
node_modules Size 45.2 MB 45.2 MB ⚠️ +1.97 kB
Total Bundle (main, webpack, commons) Size 213 kB 214 kB ⚠️ +382 B
Total Bundle (main, webpack, commons) gzip Size 70.1 kB 70.2 kB ⚠️ +95 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.7 kB 27.9 kB ⚠️ +174 B
Client main gzip Size 9.16 kB 9.2 kB ⚠️ +40 B
Client commons Size 183 kB 183 kB ⚠️ +208 B
Client commons gzip Size 59.6 kB 59.7 kB ⚠️ +55 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size Error getting size Error getting size
Serverless pages/link gzip Size Error getting size Error getting size
Serverless pages/index Size Error getting size Error getting size
Serverless pages/index gzip Size Error getting size Error getting size
Serverless pages/_error Size 329 kB 330 kB ⚠️ +954 B
Serverless pages/_error gzip Size 84.1 kB 84.4 kB ⚠️ +261 B
Serverless pages/routerDirect Size Error getting size Error getting size
Serverless pages/routerDirect gzip Size Error getting size Error getting size
Serverless pages/withRouter Size Error getting size Error getting size
Serverless pages/withRouter gzip Size Error getting size Error getting size
Build Dir Size 1.06 MB 1.06 MB ⚠️ +3.46 kB

@ijjk ijjk requested a review from Timer July 3, 2019 03:39
@github-actions
Copy link
Contributor

github-actions bot commented Jul 3, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 15.1s 15s -51ms
node_modules Size 45.2 MB 45.2 MB ⚠️ +1.97 kB
Total Bundle (main, webpack, commons) Size 210 kB 210 kB ⚠️ +382 B
Total Bundle (main, webpack, commons) gzip Size 68.9 kB 69 kB ⚠️ +93 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 24.3 kB 24.4 kB ⚠️ +174 B
Client main gzip Size 7.97 kB 8.01 kB ⚠️ +38 B
Client commons Size 183 kB 183 kB ⚠️ +208 B
Client commons gzip Size 59.6 kB 59.7 kB ⚠️ +55 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.36 kB 1.36 kB
Build Dir Size 744 kB 746 kB ⚠️ +1.88 kB
Click to expand serverless stats
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 17.2s 17s -173ms
node_modules Size 45.2 MB 45.2 MB ⚠️ +1.97 kB
Total Bundle (main, webpack, commons) Size 210 kB 210 kB ⚠️ +382 B
Total Bundle (main, webpack, commons) gzip Size 68.9 kB 69 kB ⚠️ +93 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 24.3 kB 24.4 kB ⚠️ +174 B
Client main gzip Size 7.97 kB 8.01 kB ⚠️ +38 B
Client commons Size 183 kB 183 kB ⚠️ +208 B
Client commons gzip Size 59.6 kB 59.7 kB ⚠️ +55 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size Error getting size Error getting size
Serverless pages/link gzip Size Error getting size Error getting size
Serverless pages/index Size Error getting size Error getting size
Serverless pages/index gzip Size Error getting size Error getting size
Serverless pages/_error Size 329 kB 330 kB ⚠️ +954 B
Serverless pages/_error gzip Size 84.1 kB 84.4 kB ⚠️ +263 B
Serverless pages/routerDirect Size Error getting size Error getting size
Serverless pages/routerDirect gzip Size Error getting size Error getting size
Serverless pages/withRouter Size Error getting size Error getting size
Serverless pages/withRouter gzip Size Error getting size Error getting size
Build Dir Size 1.05 MB 1.05 MB ⚠️ +3.46 kB

@github-actions
Copy link
Contributor

github-actions bot commented Jul 3, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 13.2s 13.3s ⚠️ +60ms
node_modules Size 45.2 MB 45.2 MB ⚠️ +2.44 kB
Total Bundle (main, webpack, commons) Size 210 kB 211 kB ⚠️ +532 B
Total Bundle (main, webpack, commons) gzip Size 68.9 kB 69 kB ⚠️ +116 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 24.3 kB 24.6 kB ⚠️ +321 B
Client main gzip Size 7.97 kB 8.04 kB ⚠️ +61 B
Client commons Size 183 kB 183 kB ⚠️ +211 B
Client commons gzip Size 59.6 kB 59.7 kB ⚠️ +55 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.36 kB 1.36 kB
Build Dir Size 744 kB 747 kB ⚠️ +2.9 kB
Click to expand serverless stats
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 15.4s 15.6s ⚠️ +258ms
node_modules Size 45.2 MB 45.2 MB ⚠️ +2.44 kB
Total Bundle (main, webpack, commons) Size 210 kB 211 kB ⚠️ +532 B
Total Bundle (main, webpack, commons) gzip Size 68.9 kB 69 kB ⚠️ +116 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 24.3 kB 24.6 kB ⚠️ +321 B
Client main gzip Size 7.97 kB 8.04 kB ⚠️ +61 B
Client commons Size 183 kB 183 kB ⚠️ +211 B
Client commons gzip Size 59.6 kB 59.7 kB ⚠️ +55 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size Error getting size Error getting size
Serverless pages/link gzip Size Error getting size Error getting size
Serverless pages/index Size Error getting size Error getting size
Serverless pages/index gzip Size Error getting size Error getting size
Serverless pages/_error Size 329 kB 330 kB ⚠️ +962 B
Serverless pages/_error gzip Size 84.1 kB 84.4 kB ⚠️ +264 B
Serverless pages/routerDirect Size Error getting size Error getting size
Serverless pages/routerDirect gzip Size Error getting size Error getting size
Serverless pages/withRouter Size Error getting size Error getting size
Serverless pages/withRouter gzip Size Error getting size Error getting size
Build Dir Size 1.05 MB 1.05 MB ⚠️ +4.5 kB

@ijjk ijjk requested a review from timneutkens July 3, 2019 21:47
@Timer Timer dismissed their stale review July 5, 2019 14:52

deferring to Tim

@github-actions
Copy link
Contributor

github-actions bot commented Jul 5, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 13.6s 13.4s -254ms
node_modules Size 45.3 MB 45.3 MB ⚠️ +2.44 kB
Total Bundle (main, webpack, commons) Size 210 kB 211 kB ⚠️ +532 B
Total Bundle (main, webpack, commons) gzip Size 68.9 kB 69 kB ⚠️ +116 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.45 kB 8.45 kB
Client _error gzip Size 3.24 kB 3.24 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 24.3 kB 24.6 kB ⚠️ +321 B
Client main gzip Size 7.97 kB 8.04 kB ⚠️ +61 B
Client commons Size 183 kB 183 kB ⚠️ +211 B
Client commons gzip Size 59.6 kB 59.7 kB ⚠️ +55 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.36 kB 1.36 kB
Build Dir Size 744 kB 747 kB ⚠️ +2.9 kB
Click to expand serverless stats
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 15.5s 14.9s -577ms
node_modules Size 45.3 MB 45.3 MB ⚠️ +2.44 kB
Total Bundle (main, webpack, commons) Size 210 kB 211 kB ⚠️ +532 B
Total Bundle (main, webpack, commons) gzip Size 68.9 kB 69 kB ⚠️ +116 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.45 kB 8.45 kB
Client _error gzip Size 3.24 kB 3.24 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 24.3 kB 24.6 kB ⚠️ +321 B
Client main gzip Size 7.97 kB 8.04 kB ⚠️ +61 B
Client commons Size 183 kB 183 kB ⚠️ +211 B
Client commons gzip Size 59.6 kB 59.7 kB ⚠️ +55 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size Error getting size Error getting size
Serverless pages/link gzip Size Error getting size Error getting size
Serverless pages/index Size Error getting size Error getting size
Serverless pages/index gzip Size Error getting size Error getting size
Serverless pages/_error Size 329 kB 330 kB ⚠️ +962 B
Serverless pages/_error gzip Size 84.1 kB 84.4 kB ⚠️ +262 B
Serverless pages/routerDirect Size Error getting size Error getting size
Serverless pages/routerDirect gzip Size Error getting size Error getting size
Serverless pages/withRouter Size Error getting size Error getting size
Serverless pages/withRouter gzip Size Error getting size Error getting size
Build Dir Size 1.05 MB 1.05 MB ⚠️ +4.5 kB

@github-actions
Copy link
Contributor

Stats from current PR

Click to expand stats ✅ Total Bundle Size Decrease ✅
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 13.1s 13.4s ⚠️ +344ms
node_modules Size 45.4 MB 45.4 MB ⚠️ +949 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB -115 B
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB ⚠️ +46 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.45 kB 8.45 kB
Client _error gzip Size 3.24 kB 3.24 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.14 kB 4.14 kB
Client pages/link gzip Size 1.82 kB 1.82 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 19.8 kB 20 kB ⚠️ +218 B
Client main gzip Size 6.78 kB 6.84 kB ⚠️ +61 B
Client commons Size 184 kB 183 kB -333 B
Client commons gzip Size 59.7 kB 59.7 kB -15 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.34 kB 1.34 kB
Build Dir Size 699 kB 698 kB -1.16 kB
Click to expand serverless stats ✅ Total Bundle Size Decrease ✅
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 14.5s 14.8s ⚠️ +296ms
node_modules Size 45.4 MB 45.4 MB ⚠️ +949 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB -115 B
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB ⚠️ +46 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.45 kB 8.45 kB
Client _error gzip Size 3.24 kB 3.24 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.14 kB 4.14 kB
Client pages/link gzip Size 1.82 kB 1.82 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 19.8 kB 20 kB ⚠️ +218 B
Client main gzip Size 6.78 kB 6.84 kB ⚠️ +61 B
Client commons Size 184 kB 183 kB -333 B
Client commons gzip Size 59.7 kB 59.7 kB -15 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size 251 kB 250 kB -625 B
Serverless pages/link gzip Size 67.6 kB 67.5 kB -16 B
Serverless pages/index Size 243 kB 243 kB -625 B
Serverless pages/index gzip Size 65.3 kB 65.3 kB -4 B
Serverless pages/_error Size 243 kB 242 kB -625 B
Serverless pages/_error gzip Size 65.1 kB 65.1 kB -20 B
Serverless pages/routerDirect Size 244 kB 243 kB -625 B
Serverless pages/routerDirect gzip Size 65.3 kB 65.3 kB -12 B
Serverless pages/withRouter Size 244 kB 243 kB -625 B
Serverless pages/withRouter gzip Size 65.4 kB 65.4 kB -8 B
Build Dir Size 1.88 MB 1.88 MB -4.36 kB

@ijjk ijjk changed the title Provide AppContainer to getInitialProps for getDataFromTree Provide AppTree to getInitialProps for getDataFromTree Jul 23, 2019
@github-actions
Copy link
Contributor

Stats from current PR

Click to expand stats ✅ Total Bundle Size Decrease ✅
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 13.9s 13.4s -592ms
node_modules Size 45.5 MB 45.5 MB ⚠️ +840 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB -115 B
Total Bundle (main, webpack, commons) gzip Size 67.9 kB 67.9 kB ⚠️ +53 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 20 kB 20.2 kB ⚠️ +218 B
Client main gzip Size 6.86 kB 6.92 kB ⚠️ +68 B
Client commons Size 184 kB 183 kB -333 B
Client commons gzip Size 59.7 kB 59.7 kB -15 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.35 kB 1.35 kB
Build Dir Size 704 kB 703 kB -1.16 kB
Click to expand serverless stats ✅ Total Bundle Size Decrease ✅
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 14.6s 14.6s -55ms
node_modules Size 45.5 MB 45.5 MB ⚠️ +840 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB -115 B
Total Bundle (main, webpack, commons) gzip Size 67.9 kB 67.9 kB ⚠️ +53 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 20 kB 20.2 kB ⚠️ +218 B
Client main gzip Size 6.86 kB 6.92 kB ⚠️ +68 B
Client commons Size 184 kB 183 kB -333 B
Client commons gzip Size 59.7 kB 59.7 kB -15 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size 252 kB 251 kB -625 B
Serverless pages/link gzip Size 67.9 kB 67.9 kB -13 B
Serverless pages/index Size 245 kB 244 kB -625 B
Serverless pages/index gzip Size 65.7 kB 65.7 kB -7 B
Serverless pages/_error Size 244 kB 244 kB -625 B
Serverless pages/_error gzip Size 65.5 kB 65.4 kB -23 B
Serverless pages/routerDirect Size 245 kB 245 kB -625 B
Serverless pages/routerDirect gzip Size 65.7 kB 65.7 kB -15 B
Serverless pages/withRouter Size 245 kB 245 kB -625 B
Serverless pages/withRouter gzip Size 65.8 kB 65.8 kB -13 B
Build Dir Size 1.89 MB 1.89 MB -4.36 kB
Diff for commons.js
@@ -391,36 +391,6 @@ var objectKeys = Object.keys || function (obj) {
 
 /***/ }),
 
-/***/ "4Vye":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var _interopRequireDefault = __webpack_require__("KI45");
-
-var _defineProperty = _interopRequireDefault(__webpack_require__("hfKm"));
-
-var __importStar = void 0 && (void 0).__importStar || function (mod) {
-  if (mod && mod.__esModule) return mod;
-  var result = {};
-  if (mod != null) for (var k in mod) {
-    if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-  }
-  result["default"] = mod;
-  return result;
-};
-
-(0, _defineProperty["default"])(exports, "__esModule", {
-  value: true
-});
-
-var React = __importStar(__webpack_require__("q1tI"));
-
-exports.RequestContext = React.createContext(null);
-
-/***/ }),
-
 /***/ "4jyI":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -3019,6 +2989,7 @@ function () {
     var initialProps = _ref.initialProps,
         pageLoader = _ref.pageLoader,
         App = _ref.App,
+        wrapApp = _ref.wrapApp,
         Component = _ref.Component,
         err = _ref.err,
         subscription = _ref.subscription;
@@ -3096,6 +3067,7 @@ function () {
     this.asPath = as;
     this.sub = subscription;
     this.clc = null;
+    this._wrapApp = wrapApp;
 
     if (true) {
       // in order for `e.state` to work on the `onpopstate` event
@@ -3582,6 +3554,7 @@ function () {
                 App = this.components['/_app'].Component;
                 _context2.next = 6;
                 return utils_1.loadGetInitialProps(App, {
+                  AppTree: this._wrapApp(App),
                   Component: Component,
                   router: this,
                   ctx: ctx
@@ -6640,7 +6613,6 @@ var _interopRequireDefault = __webpack_require__("KI45");
 
 exports.__esModule = true;
 exports.useRouter = useRouter;
-exports.useRequest = useRequest;
 exports.makePublicRouterInstance = makePublicRouterInstance;
 exports.createRouter = exports.withRouter = exports["default"] = void 0;
 
@@ -6657,8 +6629,6 @@ exports.NextRouter = _router2.NextRouter;
 
 var _routerContext = __webpack_require__("9EOK");
 
-var _requestContext = __webpack_require__("4Vye");
-
 var _withRouter = _interopRequireDefault(__webpack_require__("0Bsm"));
 
 exports.withRouter = _withRouter["default"];
@@ -6744,10 +6714,6 @@ exports["default"] = _default;
 
 function useRouter() {
   return _react["default"].useContext(_routerContext.RouterContext);
-}
-
-function useRequest() {
-  return _react["default"].useContext(_requestContext.RequestContext);
 } // INTERNAL APIS
 // -------------
 // (do not use following exports inside the app)
Diff for main.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[2],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -598,6 +598,7 @@ function () {
               pageLoader: pageLoader,
               App: App,
               Component: Component,
+              wrapApp: wrapApp,
               err: initialErr,
               subscription: function subscription(_ref3, App) {
                 var Component = _ref3.Component,
@@ -698,7 +699,7 @@ function _renderError() {
   _renderError = (0, _asyncToGenerator2["default"])(
   /*#__PURE__*/
   _regenerator["default"].mark(function _callee3(props) {
-    var App, err, initProps;
+    var App, err, appCtx, initProps;
     return _regenerator["default"].wrap(function _callee3$(_context3) {
       while (1) {
         switch (_context3.prev = _context3.next) {
@@ -721,19 +722,11 @@ function _renderError() {
 
           case 6:
             exports.ErrorComponent = ErrorComponent = _context3.sent;
-
-            if (!props.props) {
-              _context3.next = 11;
-              break;
-            }
-
-            _context3.t0 = props.props;
-            _context3.next = 14;
-            break;
-
-          case 11:
-            _context3.next = 13;
-            return (0, _utils.loadGetInitialProps)(App, {
+            // In production we do a normal render with the `ErrorComponent` as component.
+            // If we've gotten here upon initial render, we can use the props from the server.
+            // Otherwise, we need to call `getInitialProps` on `App` before mounting.
+            appCtx = {
+              AppTree: wrapApp(App),
               Component: ErrorComponent,
               router: router,
               ctx: {
@@ -742,21 +735,34 @@ function _renderError() {
                 query: query,
                 asPath: asPath
               }
-            });
+            };
 
-          case 13:
-            _context3.t0 = _context3.sent;
+            if (!props.props) {
+              _context3.next = 12;
+              break;
+            }
+
+            _context3.t0 = props.props;
+            _context3.next = 15;
+            break;
+
+          case 12:
+            _context3.next = 14;
+            return (0, _utils.loadGetInitialProps)(App, appCtx);
 
           case 14:
+            _context3.t0 = _context3.sent;
+
+          case 15:
             initProps = _context3.t0;
-            _context3.next = 17;
+            _context3.next = 18;
             return doRender((0, _extends2["default"])({}, props, {
               err: err,
               Component: ErrorComponent,
               props: initProps
             }));
 
-          case 17:
+          case 18:
           case "end":
             return _context3.stop();
         }
@@ -801,6 +807,17 @@ function AppContainer(_ref4) {
   }, children)))));
 }
 
+var wrapApp = function wrapApp(App) {
+  return function (props) {
+    var appProps = (0, _extends2["default"])({}, props, {
+      Component: Component,
+      err: err,
+      router: router
+    });
+    return _react["default"].createElement(AppContainer, null, _react["default"].createElement(App, appProps));
+  };
+};
+
 function doRender(_x4) {
   return _doRender.apply(this, arguments);
 }
@@ -809,7 +826,7 @@ function _doRender() {
   _doRender = (0, _asyncToGenerator2["default"])(
   /*#__PURE__*/
   _regenerator["default"].mark(function _callee4(_ref5) {
-    var App, Component, props, err, _router2, pathname, _query, _asPath, appProps;
+    var App, Component, props, err, _router2, pathname, _query, _asPath, appCtx, appProps;
 
     return _regenerator["default"].wrap(function _callee4$(_context4) {
       while (1) {
@@ -819,35 +836,37 @@ function _doRender() {
             // this is for when ErrorComponent gets replaced by Component by HMR
 
             if (!(!props && Component && Component !== ErrorComponent && lastAppProps.Component === ErrorComponent)) {
-              _context4.next = 6;
+              _context4.next = 7;
               break;
             }
 
             _router2 = router, pathname = _router2.pathname, _query = _router2.query, _asPath = _router2.asPath;
-            _context4.next = 5;
-            return (0, _utils.loadGetInitialProps)(App, {
-              Component: Component,
+            appCtx = {
               router: router,
+              AppTree: wrapApp(App),
+              Component: ErrorComponent,
               ctx: {
                 err: err,
                 pathname: pathname,
                 query: _query,
                 asPath: _asPath
               }
-            });
+            };
+            _context4.next = 6;
+            return (0, _utils.loadGetInitialProps)(App, appCtx);
 
-          case 5:
+          case 6:
             props = _context4.sent;
 
-          case 6:
+          case 7:
             Component = Component || lastAppProps.Component;
             props = props || lastAppProps.props;
-            appProps = (0, _extends2["default"])({
+            appProps = (0, _extends2["default"])({}, props, {
               Component: Component,
               err: err,
-              router: router
-            }, props); // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.
+              router: router // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.
 
+            });
             lastAppProps = appProps;
             emitter.emit('before-reactdom-render', {
               Component: Component,
@@ -862,7 +881,7 @@ function _doRender() {
               appProps: appProps
             });
 
-          case 13:
+          case 14:
           case "end":
             return _context4.stop();
         }

@jesstelford
Copy link
Contributor

@timneutkens looks like @ijjk may have solved the bundle size increase 🎉

Is this ready for review now?

@timneutkens timneutkens modified the milestones: 9.0.x, 9.1 Jul 27, 2019
@Timer Timer modified the milestones: 9.1.0, 9.0.3 Jul 30, 2019
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.

One test per slack and I'll be 👍.

@github-actions
Copy link
Contributor

Stats from current PR

Click to expand stats ✅ Total Bundle Size Decrease ✅
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 13.3s 13s -318ms
node_modules Size 45.9 MB 45.9 MB ⚠️ +937 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB -115 B
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.9 kB ⚠️ +84 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.6 kB ⚠️ +218 B
Client main gzip Size 5.33 kB 5.39 kB ⚠️ +70 B
Client commons Size 188 kB 188 kB -333 B
Client commons gzip Size 61.1 kB 61.1 kB ⚠️ +14 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.35 kB 1.35 kB
Build Dir Size 705 kB 703 kB -1.16 kB
Click to expand serverless stats ✅ Total Bundle Size Decrease ✅
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 14.3s 14.4s ⚠️ +97ms
node_modules Size 45.9 MB 45.9 MB ⚠️ +937 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB -115 B
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB ⚠️ +81 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 300 B 300 B
Client main Size 15.4 kB 15.6 kB ⚠️ +218 B
Client main gzip Size 5.33 kB 5.39 kB ⚠️ +67 B
Client commons Size 188 kB 188 kB -333 B
Client commons gzip Size 61.1 kB 61.1 kB ⚠️ +14 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size 252 kB 252 kB -625 B
Serverless pages/link gzip Size 68 kB 67.9 kB -15 B
Serverless pages/index Size 245 kB 244 kB -625 B
Serverless pages/index gzip Size 65.8 kB 65.8 kB -7 B
Serverless pages/_error Size 244 kB 244 kB -625 B
Serverless pages/_error gzip Size 65.5 kB 65.5 kB -23 B
Serverless pages/routerDirect Size 246 kB 245 kB -625 B
Serverless pages/routerDirect gzip Size 65.7 kB 65.7 kB -16 B
Serverless pages/withRouter Size 245 kB 245 kB -625 B
Serverless pages/withRouter gzip Size 65.9 kB 65.8 kB -12 B
Build Dir Size 1.89 MB 1.89 MB -4.36 kB
Diff for commons.js
@@ -420,36 +420,6 @@ var objectKeys = Object.keys || function (obj) {
 
 /***/ }),
 
-/***/ "4Vye":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var _interopRequireDefault = __webpack_require__("KI45");
-
-var _defineProperty = _interopRequireDefault(__webpack_require__("hfKm"));
-
-var __importStar = void 0 && (void 0).__importStar || function (mod) {
-  if (mod && mod.__esModule) return mod;
-  var result = {};
-  if (mod != null) for (var k in mod) {
-    if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-  }
-  result["default"] = mod;
-  return result;
-};
-
-(0, _defineProperty["default"])(exports, "__esModule", {
-  value: true
-});
-
-var React = __importStar(__webpack_require__("q1tI"));
-
-exports.RequestContext = React.createContext(null);
-
-/***/ }),
-
 /***/ "4jyI":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -3048,6 +3018,7 @@ function () {
     var initialProps = _ref.initialProps,
         pageLoader = _ref.pageLoader,
         App = _ref.App,
+        wrapApp = _ref.wrapApp,
         Component = _ref.Component,
         err = _ref.err,
         subscription = _ref.subscription;
@@ -3125,6 +3096,7 @@ function () {
     this.asPath = as;
     this.sub = subscription;
     this.clc = null;
+    this._wrapApp = wrapApp;
 
     if (true) {
       // in order for `e.state` to work on the `onpopstate` event
@@ -3611,6 +3583,7 @@ function () {
                 App = this.components['/_app'].Component;
                 _context2.next = 6;
                 return utils_1.loadGetInitialProps(App, {
+                  AppTree: this._wrapApp(App),
                   Component: Component,
                   router: this,
                   ctx: ctx
@@ -6682,7 +6655,6 @@ var _interopRequireDefault = __webpack_require__("KI45");
 
 exports.__esModule = true;
 exports.useRouter = useRouter;
-exports.useRequest = useRequest;
 exports.makePublicRouterInstance = makePublicRouterInstance;
 exports.createRouter = exports.withRouter = exports["default"] = void 0;
 
@@ -6699,8 +6671,6 @@ exports.NextRouter = _router2.NextRouter;
 
 var _routerContext = __webpack_require__("9EOK");
 
-var _requestContext = __webpack_require__("4Vye");
-
 var _withRouter = _interopRequireDefault(__webpack_require__("0Bsm"));
 
 exports.withRouter = _withRouter["default"];
@@ -6786,10 +6756,6 @@ exports["default"] = _default;
 
 function useRouter() {
   return _react["default"].useContext(_routerContext.RouterContext);
-}
-
-function useRequest() {
-  return _react["default"].useContext(_requestContext.RequestContext);
 } // INTERNAL APIS
 // -------------
 // (do not use following exports inside the app)
Diff for main.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[2],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "+iuc":
 /***/ (function(module, exports, __webpack_require__) {
@@ -569,6 +569,7 @@ function () {
               pageLoader: pageLoader,
               App: App,
               Component: Component,
+              wrapApp: wrapApp,
               err: initialErr,
               subscription: function subscription(_ref3, App) {
                 var Component = _ref3.Component,
@@ -669,7 +670,7 @@ function _renderError() {
   _renderError = (0, _asyncToGenerator2["default"])(
   /*#__PURE__*/
   _regenerator["default"].mark(function _callee3(props) {
-    var App, err, initProps;
+    var App, err, appCtx, initProps;
     return _regenerator["default"].wrap(function _callee3$(_context3) {
       while (1) {
         switch (_context3.prev = _context3.next) {
@@ -692,19 +693,11 @@ function _renderError() {
 
           case 6:
             exports.ErrorComponent = ErrorComponent = _context3.sent;
-
-            if (!props.props) {
-              _context3.next = 11;
-              break;
-            }
-
-            _context3.t0 = props.props;
-            _context3.next = 14;
-            break;
-
-          case 11:
-            _context3.next = 13;
-            return (0, _utils.loadGetInitialProps)(App, {
+            // In production we do a normal render with the `ErrorComponent` as component.
+            // If we've gotten here upon initial render, we can use the props from the server.
+            // Otherwise, we need to call `getInitialProps` on `App` before mounting.
+            appCtx = {
+              AppTree: wrapApp(App),
               Component: ErrorComponent,
               router: router,
               ctx: {
@@ -713,21 +706,34 @@ function _renderError() {
                 query: query,
                 asPath: asPath
               }
-            });
+            };
 
-          case 13:
-            _context3.t0 = _context3.sent;
+            if (!props.props) {
+              _context3.next = 12;
+              break;
+            }
+
+            _context3.t0 = props.props;
+            _context3.next = 15;
+            break;
+
+          case 12:
+            _context3.next = 14;
+            return (0, _utils.loadGetInitialProps)(App, appCtx);
 
           case 14:
+            _context3.t0 = _context3.sent;
+
+          case 15:
             initProps = _context3.t0;
-            _context3.next = 17;
+            _context3.next = 18;
             return doRender((0, _extends2["default"])({}, props, {
               err: err,
               Component: ErrorComponent,
               props: initProps
             }));
 
-          case 17:
+          case 18:
           case "end":
             return _context3.stop();
         }
@@ -772,6 +778,17 @@ function AppContainer(_ref4) {
   }, children)))));
 }
 
+var wrapApp = function wrapApp(App) {
+  return function (props) {
+    var appProps = (0, _extends2["default"])({}, props, {
+      Component: Component,
+      err: err,
+      router: router
+    });
+    return _react["default"].createElement(AppContainer, null, _react["default"].createElement(App, appProps));
+  };
+};
+
 function doRender(_x4) {
   return _doRender.apply(this, arguments);
 }
@@ -780,7 +797,7 @@ function _doRender() {
   _doRender = (0, _asyncToGenerator2["default"])(
   /*#__PURE__*/
   _regenerator["default"].mark(function _callee4(_ref5) {
-    var App, Component, props, err, _router2, pathname, _query, _asPath, appProps;
+    var App, Component, props, err, _router2, pathname, _query, _asPath, appCtx, appProps;
 
     return _regenerator["default"].wrap(function _callee4$(_context4) {
       while (1) {
@@ -790,35 +807,37 @@ function _doRender() {
             // this is for when ErrorComponent gets replaced by Component by HMR
 
             if (!(!props && Component && Component !== ErrorComponent && lastAppProps.Component === ErrorComponent)) {
-              _context4.next = 6;
+              _context4.next = 7;
               break;
             }
 
             _router2 = router, pathname = _router2.pathname, _query = _router2.query, _asPath = _router2.asPath;
-            _context4.next = 5;
-            return (0, _utils.loadGetInitialProps)(App, {
-              Component: Component,
+            appCtx = {
               router: router,
+              AppTree: wrapApp(App),
+              Component: ErrorComponent,
               ctx: {
                 err: err,
                 pathname: pathname,
                 query: _query,
                 asPath: _asPath
               }
-            });
+            };
+            _context4.next = 6;
+            return (0, _utils.loadGetInitialProps)(App, appCtx);
 
-          case 5:
+          case 6:
             props = _context4.sent;
 
-          case 6:
+          case 7:
             Component = Component || lastAppProps.Component;
             props = props || lastAppProps.props;
-            appProps = (0, _extends2["default"])({
+            appProps = (0, _extends2["default"])({}, props, {
               Component: Component,
               err: err,
-              router: router
-            }, props); // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.
+              router: router // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.
 
+            });
             lastAppProps = appProps;
             emitter.emit('before-reactdom-render', {
               Component: Component,
@@ -833,7 +852,7 @@ function _doRender() {
               appProps: appProps
             });
 
-          case 13:
+          case 14:
           case "end":
             return _context4.stop();
         }

@github-actions
Copy link
Contributor

Stats from current PR

Click to expand stats ✅ Total Bundle Size Decrease ✅
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 12.6s 12.2s -383ms
node_modules Size 45.9 MB 45.9 MB ⚠️ +937 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB -115 B
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.9 kB ⚠️ +84 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.6 kB ⚠️ +218 B
Client main gzip Size 5.33 kB 5.39 kB ⚠️ +70 B
Client commons Size 188 kB 188 kB -333 B
Client commons gzip Size 61.1 kB 61.1 kB ⚠️ +14 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.35 kB 1.35 kB
Build Dir Size 705 kB 703 kB -1.16 kB
Click to expand serverless stats ✅ Total Bundle Size Decrease ✅
zeit/next.js canary ijjk/next.js add/app-container Change
Build Duration 13.2s 13.4s ⚠️ +158ms
node_modules Size 45.9 MB 45.9 MB ⚠️ +937 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB -115 B
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.9 kB ⚠️ +84 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.6 kB ⚠️ +218 B
Client main gzip Size 5.33 kB 5.39 kB ⚠️ +70 B
Client commons Size 188 kB 188 kB -333 B
Client commons gzip Size 61.1 kB 61.1 kB ⚠️ +14 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size 252 kB 252 kB -625 B
Serverless pages/link gzip Size 68 kB 67.9 kB -20 B
Serverless pages/index Size 245 kB 244 kB -625 B
Serverless pages/index gzip Size 65.8 kB 65.8 kB -9 B
Serverless pages/_error Size 244 kB 244 kB -625 B
Serverless pages/_error gzip Size 65.5 kB 65.5 kB -25 B
Serverless pages/routerDirect Size 246 kB 245 kB -625 B
Serverless pages/routerDirect gzip Size 65.7 kB 65.7 kB -17 B
Serverless pages/withRouter Size 245 kB 245 kB -625 B
Serverless pages/withRouter gzip Size 65.9 kB 65.8 kB -14 B
Build Dir Size 1.89 MB 1.89 MB -4.36 kB
Diff for commons.js
@@ -420,36 +420,6 @@ var objectKeys = Object.keys || function (obj) {
 
 /***/ }),
 
-/***/ "4Vye":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var _interopRequireDefault = __webpack_require__("KI45");
-
-var _defineProperty = _interopRequireDefault(__webpack_require__("hfKm"));
-
-var __importStar = void 0 && (void 0).__importStar || function (mod) {
-  if (mod && mod.__esModule) return mod;
-  var result = {};
-  if (mod != null) for (var k in mod) {
-    if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-  }
-  result["default"] = mod;
-  return result;
-};
-
-(0, _defineProperty["default"])(exports, "__esModule", {
-  value: true
-});
-
-var React = __importStar(__webpack_require__("q1tI"));
-
-exports.RequestContext = React.createContext(null);
-
-/***/ }),
-
 /***/ "4jyI":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -3048,6 +3018,7 @@ function () {
     var initialProps = _ref.initialProps,
         pageLoader = _ref.pageLoader,
         App = _ref.App,
+        wrapApp = _ref.wrapApp,
         Component = _ref.Component,
         err = _ref.err,
         subscription = _ref.subscription;
@@ -3125,6 +3096,7 @@ function () {
     this.asPath = as;
     this.sub = subscription;
     this.clc = null;
+    this._wrapApp = wrapApp;
 
     if (true) {
       // in order for `e.state` to work on the `onpopstate` event
@@ -3611,6 +3583,7 @@ function () {
                 App = this.components['/_app'].Component;
                 _context2.next = 6;
                 return utils_1.loadGetInitialProps(App, {
+                  AppTree: this._wrapApp(App),
                   Component: Component,
                   router: this,
                   ctx: ctx
@@ -6682,7 +6655,6 @@ var _interopRequireDefault = __webpack_require__("KI45");
 
 exports.__esModule = true;
 exports.useRouter = useRouter;
-exports.useRequest = useRequest;
 exports.makePublicRouterInstance = makePublicRouterInstance;
 exports.createRouter = exports.withRouter = exports["default"] = void 0;
 
@@ -6699,8 +6671,6 @@ exports.NextRouter = _router2.NextRouter;
 
 var _routerContext = __webpack_require__("9EOK");
 
-var _requestContext = __webpack_require__("4Vye");
-
 var _withRouter = _interopRequireDefault(__webpack_require__("0Bsm"));
 
 exports.withRouter = _withRouter["default"];
@@ -6786,10 +6756,6 @@ exports["default"] = _default;
 
 function useRouter() {
   return _react["default"].useContext(_routerContext.RouterContext);
-}
-
-function useRequest() {
-  return _react["default"].useContext(_requestContext.RequestContext);
 } // INTERNAL APIS
 // -------------
 // (do not use following exports inside the app)
Diff for main.js
@@ -569,6 +569,7 @@ function () {
               pageLoader: pageLoader,
               App: App,
               Component: Component,
+              wrapApp: wrapApp,
               err: initialErr,
               subscription: function subscription(_ref3, App) {
                 var Component = _ref3.Component,
@@ -669,7 +670,7 @@ function _renderError() {
   _renderError = (0, _asyncToGenerator2["default"])(
   /*#__PURE__*/
   _regenerator["default"].mark(function _callee3(props) {
-    var App, err, initProps;
+    var App, err, appCtx, initProps;
     return _regenerator["default"].wrap(function _callee3$(_context3) {
       while (1) {
         switch (_context3.prev = _context3.next) {
@@ -692,19 +693,11 @@ function _renderError() {
 
           case 6:
             exports.ErrorComponent = ErrorComponent = _context3.sent;
-
-            if (!props.props) {
-              _context3.next = 11;
-              break;
-            }
-
-            _context3.t0 = props.props;
-            _context3.next = 14;
-            break;
-
-          case 11:
-            _context3.next = 13;
-            return (0, _utils.loadGetInitialProps)(App, {
+            // In production we do a normal render with the `ErrorComponent` as component.
+            // If we've gotten here upon initial render, we can use the props from the server.
+            // Otherwise, we need to call `getInitialProps` on `App` before mounting.
+            appCtx = {
+              AppTree: wrapApp(App),
               Component: ErrorComponent,
               router: router,
               ctx: {
@@ -713,21 +706,34 @@ function _renderError() {
                 query: query,
                 asPath: asPath
               }
-            });
+            };
 
-          case 13:
-            _context3.t0 = _context3.sent;
+            if (!props.props) {
+              _context3.next = 12;
+              break;
+            }
+
+            _context3.t0 = props.props;
+            _context3.next = 15;
+            break;
+
+          case 12:
+            _context3.next = 14;
+            return (0, _utils.loadGetInitialProps)(App, appCtx);
 
           case 14:
+            _context3.t0 = _context3.sent;
+
+          case 15:
             initProps = _context3.t0;
-            _context3.next = 17;
+            _context3.next = 18;
             return doRender((0, _extends2["default"])({}, props, {
               err: err,
               Component: ErrorComponent,
               props: initProps
             }));
 
-          case 17:
+          case 18:
           case "end":
             return _context3.stop();
         }
@@ -772,6 +778,17 @@ function AppContainer(_ref4) {
   }, children)))));
 }
 
+var wrapApp = function wrapApp(App) {
+  return function (props) {
+    var appProps = (0, _extends2["default"])({}, props, {
+      Component: Component,
+      err: err,
+      router: router
+    });
+    return _react["default"].createElement(AppContainer, null, _react["default"].createElement(App, appProps));
+  };
+};
+
 function doRender(_x4) {
   return _doRender.apply(this, arguments);
 }
@@ -780,7 +797,7 @@ function _doRender() {
   _doRender = (0, _asyncToGenerator2["default"])(
   /*#__PURE__*/
   _regenerator["default"].mark(function _callee4(_ref5) {
-    var App, Component, props, err, _router2, pathname, _query, _asPath, appProps;
+    var App, Component, props, err, _router2, pathname, _query, _asPath, appCtx, appProps;
 
     return _regenerator["default"].wrap(function _callee4$(_context4) {
       while (1) {
@@ -790,35 +807,37 @@ function _doRender() {
             // this is for when ErrorComponent gets replaced by Component by HMR
 
             if (!(!props && Component && Component !== ErrorComponent && lastAppProps.Component === ErrorComponent)) {
-              _context4.next = 6;
+              _context4.next = 7;
               break;
             }
 
             _router2 = router, pathname = _router2.pathname, _query = _router2.query, _asPath = _router2.asPath;
-            _context4.next = 5;
-            return (0, _utils.loadGetInitialProps)(App, {
-              Component: Component,
+            appCtx = {
               router: router,
+              AppTree: wrapApp(App),
+              Component: ErrorComponent,
               ctx: {
                 err: err,
                 pathname: pathname,
                 query: _query,
                 asPath: _asPath
               }
-            });
+            };
+            _context4.next = 6;
+            return (0, _utils.loadGetInitialProps)(App, appCtx);
 
-          case 5:
+          case 6:
             props = _context4.sent;
 
-          case 6:
+          case 7:
             Component = Component || lastAppProps.Component;
             props = props || lastAppProps.props;
-            appProps = (0, _extends2["default"])({
+            appProps = (0, _extends2["default"])({}, props, {
               Component: Component,
               err: err,
-              router: router
-            }, props); // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.
+              router: router // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.
 
+            });
             lastAppProps = appProps;
             emitter.emit('before-reactdom-render', {
               Component: Component,
@@ -833,7 +852,7 @@ function _doRender() {
               appProps: appProps
             });
 
-          case 13:
+          case 14:
           case "end":
             return _context4.stop();
         }

@ijjk ijjk requested a review from Timer July 30, 2019 17:13
@Timer Timer merged commit 4850bd0 into vercel:canary Jul 30, 2019
@ijjk ijjk deleted the add/app-container branch July 30, 2019 18:00
kodiakhq bot pushed a commit to mcansh/connection that referenced this pull request Aug 1, 2019
## The dependency [next](https://github.com/zeit/next.js) was updated from `9.0.2` to `9.0.3`.
This version is **not covered** by your **current version range**.

If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.

---

**Publisher:** [zeit-bot](https://www.npmjs.com/~zeit-bot)
**License:** MIT

<details>
<summary>Release Notes for v9.0.3</summary>

<h3>Minor Changes</h3>
<ul>
<li>Experimental module/nomodule support: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="462231644" data-permission-text="Issue title is private" data-url="vercel/next.js#7704" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/7704/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/7704">#7704</a></li>
</ul>
<h3>Patches</h3>
<ul>
<li>Modern JS for SSR Bundles: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="467869135" data-permission-text="Issue title is private" data-url="vercel/next.js#7961" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/7961/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/7961">#7961</a></li>
<li>Add .gitignore: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="466739863" data-permission-text="Issue title is private" data-url="vercel/next.js#7893" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/7893/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/7893">#7893</a></li>
<li>Import isomorphic-unfetch in data fetching example: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="466886896" data-permission-text="Issue title is private" data-url="vercel/next.js#7895" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/7895/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/7895">#7895</a></li>
<li>Make tests for both async and sync GIP: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="468706447" data-permission-text="Issue title is private" data-url="vercel/next.js#7999" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/7999/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/7999">#7999</a></li>
<li>Rework dynamic routing &lt;Link&gt; documentation: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="468803528" data-permission-text="Issue title is private" data-url="vercel/next.js#8001" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8001/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8001">#8001</a></li>
<li>Avoid sending user errors to client: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="468848773" data-permission-text="Issue title is private" data-url="vercel/next.js#8005" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8005/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8005">#8005</a></li>
<li>Replace fs.exists with fs.access: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="463627067" data-permission-text="Issue title is private" data-url="vercel/next.js#7742" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/7742/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/7742">#7742</a></li>
<li>Fix children key in with-typescript-styled-components example: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="468834696" data-permission-text="Issue title is private" data-url="vercel/next.js#8003" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8003/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8003">#8003</a></li>
<li>Handle windows backslashes when checking ssr-prepass: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="469319954" data-permission-text="Issue title is private" data-url="vercel/next.js#8016" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8016/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8016">#8016</a></li>
<li>Add Create Next App package: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="469418599" data-permission-text="Issue title is private" data-url="vercel/next.js#8018" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8018/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8018">#8018</a></li>
<li>Reference correct repository: <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/zeit/next.js/commit/7f5f9818009c8cd90e1e5bd17d5517b45558dc5d/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/commit/7f5f9818009c8cd90e1e5bd17d5517b45558dc5d"><tt>7f5f981</tt></a></li>
<li>Remove old media images: <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/zeit/next.js/commit/d486152b98b481afd2d6e6e013e8a0cefda93350/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/commit/d486152b98b481afd2d6e6e013e8a0cefda93350"><tt>d486152</tt></a></li>
<li>Update CNA links to examples: <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/zeit/next.js/commit/bcd8eb6b784cc167507c8768c55fd8ea3735fee7/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/commit/bcd8eb6b784cc167507c8768c55fd8ea3735fee7"><tt>bcd8eb6</tt></a></li>
<li>Fix CNA README typo: <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/zeit/next.js/commit/8fb32de0ab7399ace08d4832173942c1452e4241/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/commit/8fb32de0ab7399ace08d4832173942c1452e4241"><tt>8fb32de</tt></a></li>
<li>Fix syntax error in ie11 from next-server/amp: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="470024207" data-permission-text="Issue title is private" data-url="vercel/next.js#8032" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8032/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8032">#8032</a></li>
<li>Rewrite Create Next App: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="470000615" data-permission-text="Issue title is private" data-url="vercel/next.js#8030" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8030/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8030">#8030</a></li>
<li>Comment out GIP in Custom &lt;App&gt;: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="471135868" data-permission-text="Issue title is private" data-url="vercel/next.js#8055" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8055/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8055">#8055</a></li>
<li>Remove public/ file example: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="471136710" data-permission-text="Issue title is private" data-url="vercel/next.js#8056" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8056/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8056">#8056</a></li>
<li>Remove <code>now.json</code> from examples: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="471137313" data-permission-text="Issue title is private" data-url="vercel/next.js#8057" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8057/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8057">#8057</a></li>
<li>Fix userAgent type error in README.md: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="470826188" data-permission-text="Issue title is private" data-url="vercel/next.js#8048" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8048/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8048">#8048</a></li>
<li>Apply missing formatting: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="471849421" data-permission-text="Issue title is private" data-url="vercel/next.js#8079" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8079/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8079">#8079</a></li>
<li>Updated "firebase-admin" module and added "firebase-functions-t…: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="471838215" data-permission-text="Issue title is private" data-url="vercel/next.js#8078" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8078/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8078">#8078</a></li>
<li>Enable Kodiak bot: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="472617792" data-permission-text="Issue title is private" data-url="vercel/next.js#8096" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8096/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8096">#8096</a></li>
<li>Disable notify on conflict: <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/zeit/next.js/commit/427a02a468ca6c8b101ab3229742f2c1ab1ced69/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/commit/427a02a468ca6c8b101ab3229742f2c1ab1ced69"><tt>427a02a</tt></a></li>
<li>Improve types: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="472623488" data-permission-text="Issue title is private" data-url="vercel/next.js#8097" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8097/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8097">#8097</a></li>
<li>Allow automatic static optimization in with-sentry-simple examp…: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="472766378" data-permission-text="Issue title is private" data-url="vercel/next.js#8102" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8102/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8102">#8102</a></li>
<li>Require label to merge for now: <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/zeit/next.js/commit/d006a24d8f9d70ad92f59c41a42b2ecb7c46cbf6/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/commit/d006a24d8f9d70ad92f59c41a42b2ecb7c46cbf6"><tt>d006a24</tt></a></li>
<li>Revert "Improve type definitions": <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="472653248" data-permission-text="Issue title is private" data-url="vercel/next.js#8098" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8098/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8098">#8098</a></li>
<li>HTTP methods docs and REST example: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="472906101" data-permission-text="Issue title is private" data-url="vercel/next.js#8108" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8108/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8108">#8108</a></li>
<li>Configuration for body parsing size limit: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="466971206" data-permission-text="Issue title is private" data-url="vercel/next.js#7896" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/7896/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/7896">#7896</a></li>
<li>Add next-head-count &amp; remove next-head class: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="469465078" data-permission-text="Issue title is private" data-url="vercel/next.js#8020" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8020/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8020">#8020</a></li>
<li>Fix extension for module/nomodule: <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/zeit/next.js/commit/8b0a93b0edf06d46da4839d5be426133810c8bad/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/commit/8b0a93b0edf06d46da4839d5be426133810c8bad"><tt>8b0a93b</tt></a></li>
<li>Dynamic routes clarification: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="472934525" data-permission-text="Issue title is private" data-url="vercel/next.js#8110" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8110/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8110">#8110</a></li>
<li>Fix index.js for API routes: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="472976319" data-permission-text="Issue title is private" data-url="vercel/next.js#8112" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8112/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8112">#8112</a></li>
<li>Fix onError prop-type warning in Link: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="469483279" data-permission-text="Issue title is private" data-url="vercel/next.js#8021" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8021/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8021">#8021</a></li>
<li>Auth example with api routes: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="473108272" data-permission-text="Issue title is private" data-url="vercel/next.js#8118" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8118/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8118">#8118</a></li>
<li>Fixes problem with API and wrong regex: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="473364571" data-permission-text="Issue title is private" data-url="vercel/next.js#8126" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8126/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8126">#8126</a></li>
<li>Update example with firebase auth: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="473391249" data-permission-text="Issue title is private" data-url="vercel/next.js#8127" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8127/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8127">#8127</a></li>
<li>Improve type definitions: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="473103574" data-permission-text="Issue title is private" data-url="vercel/next.js#8117" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8117/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8117">#8117</a></li>
<li>Docs: Fix comments in with-sentry example (server.js): <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="473330715" data-permission-text="Issue title is private" data-url="vercel/next.js#8125" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8125/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8125">#8125</a></li>
<li>Add missing key prop for array elements in _document: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="473585040" data-permission-text="Issue title is private" data-url="vercel/next.js#8132" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8132/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8132">#8132</a></li>
<li>Update README.md for with-http2 example: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="473528809" data-permission-text="Issue title is private" data-url="vercel/next.js#8131" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8131/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8131">#8131</a></li>
<li>Fix spelling in  tsconfig.js of readme.md: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="473650878" data-permission-text="Issue title is private" data-url="vercel/next.js#8138" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8138/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8138">#8138</a></li>
<li>Remove next.config.js: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="473651232" data-permission-text="Issue title is private" data-url="vercel/next.js#8139" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8139/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8139">#8139</a></li>
<li>Upgrade with-mdx example from mdx 0.16 → 1.1: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="473661737" data-permission-text="Issue title is private" data-url="vercel/next.js#8142" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8142/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8142">#8142</a></li>
<li>Remove kodiak: <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/zeit/next.js/commit/482f454c7afc6a2d5a94c1a78ea0917e0fa80dc8/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/commit/482f454c7afc6a2d5a94c1a78ea0917e0fa80dc8"><tt>482f454</tt></a></li>
<li>Fix regex to not match any string with double underscore: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="473812706" data-permission-text="Issue title is private" data-url="vercel/next.js#8153" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8153/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8153">#8153</a></li>
<li>Improve docs for API: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="473932328" data-permission-text="Issue title is private" data-url="vercel/next.js#8155" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8155/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8155">#8155</a></li>
<li>Add 2 AWS Amplify SSR examples one with JS and one with TS: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="471699809" data-permission-text="Issue title is private" data-url="vercel/next.js#8073" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8073/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8073">#8073</a></li>
<li>Update webpack to 4.38.0: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="473713215" data-permission-text="Issue title is private" data-url="vercel/next.js#8147" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8147/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8147">#8147</a></li>
<li>Docs: Document change concerning api-routes: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="473203773" data-permission-text="Issue title is private" data-url="vercel/next.js#8121" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8121/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8121">#8121</a></li>
<li>Update missed lockfile: <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/zeit/next.js/commit/25fd3f86a3f7b7ad9075563f6f4a5dddf3079f00/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/commit/25fd3f86a3f7b7ad9075563f6f4a5dddf3079f00"><tt>25fd3f8</tt></a></li>
<li>Refactor(webpack): extract splitChunksConfig: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="474132203" data-permission-text="Issue title is private" data-url="vercel/next.js#8161" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8161/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8161">#8161</a></li>
<li>Include <code>scheduler</code> in React bundle: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="474156253" data-permission-text="Issue title is private" data-url="vercel/next.js#8164" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8164/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8164">#8164</a></li>
<li>Optional Server Compression: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="471351178" data-permission-text="Issue title is private" data-url="vercel/next.js#8066" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8066/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8066">#8066</a></li>
<li>Fix build only server-side <code>/api/index.js</code>: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="474247771" data-permission-text="Issue title is private" data-url="vercel/next.js#8167" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8167/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8167">#8167</a></li>
<li>Fix a typo in README: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="474647513" data-permission-text="Issue title is private" data-url="vercel/next.js#8177" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8177/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8177">#8177</a></li>
<li>Provide AppTree to getInitialProps for getDataFromTree: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="463422020" data-permission-text="Issue title is private" data-url="vercel/next.js#7732" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/7732/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/7732">#7732</a></li>
<li>Test environment code should target Node: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="474767437" data-permission-text="Issue title is private" data-url="vercel/next.js#8181" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8181/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8181">#8181</a></li>
<li>Fix: Add error message for duplicate route param name: <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="470807151" data-permission-text="Issue title is private" data-url="vercel/next.js#8047" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/8047/hovercard" href="https://urls.greenkeeper.io/zeit/next.js/pull/8047">#8047</a></li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1270909" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/rakannimer">@rakannimer</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=4323180" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/adamwathan">@adamwathan</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=5691926" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/huv1k">@huv1k</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=4278345" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/lfades">@lfades</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=2252473" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/imdreamrunner">@imdreamrunner</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=14829154" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/dmytro-lymarenko">@dmytro-lymarenko</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=22380829" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/ijjk">@ijjk</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=105127" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/developit">@developit</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=6142074" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/janicklas-ralph">@janicklas-ralph</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=29964919" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/ikeryo1182">@ikeryo1182</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=18068142" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/chaitanyareddyk">@chaitanyareddyk</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=156628" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/adam187">@adam187</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1265681" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/HaNdTriX">@HaNdTriX</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1477230" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/devknoll">@devknoll</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=675812" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/sgmonda">@sgmonda</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=3165635" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/oliviertassinari">@oliviertassinari</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=1193520" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/0x80">@0x80</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=10408485" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/bapjiws">@bapjiws</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=3652404" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/oguzzkilic">@oguzzkilic</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=12414212" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/partyKyoung">@partyKyoung</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=5074763" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/lachlanjc">@lachlanjc</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=503795" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/tomasikp">@tomasikp</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=9304194" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/felixmosh">@felixmosh</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=12292047" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/eps1lon">@eps1lon</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=616428" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/Timer">@Timer</a>, <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=2817762" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/OttlikG">@OttlikG</a>, and <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=31798108" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://urls.greenkeeper.io/nataliemarleny">@nataliemarleny</a> for helping!</p>
</details>

<details>
<summary>Commits</summary>
<p>The new version differs by 73 commits.</p>
<ul>
<li><a href="https://urls.greenkeeper.io/zeit/next.js/commit/00b56c6ede6fce26c300d3864f70ce1ecbe5fb1d"><code>00b56c6</code></a> <code>v9.0.3</code></li>
<li><a href="https://urls.greenkeeper.io/zeit/next.js/commit/dc9e2708984bc6bc7e87724fb5193e7f788c89a3"><code>dc9e270</code></a> <code>Update examples for Apollo with AppTree (#8180)</code></li>
<li><a href="https://urls.greenkeeper.io/zeit/next.js/commit/22aee7f246cd90d32027009808d732eb01335710"><code>22aee7f</code></a> <code>tests(circleci): Update chromedriver to latest (#8192)</code></li>
<li><a href="https://urls.greenkeeper.io/zeit/next.js/commit/6c2534362e3e77830be9af2ace9b72b008eae947"><code>6c25343</code></a> <code>Fix typo within blog-starter example (#8182)</code></li>
<li><a href="https://urls.greenkeeper.io/zeit/next.js/commit/858f4eb8eca024fc0e4e20c5bb7c3bfcc4a7e265"><code>858f4eb</code></a> <code>v9.0.3-canary.6</code></li>
<li><a href="https://urls.greenkeeper.io/zeit/next.js/commit/b8aee7af77288554d36841148da2f0f65416364a"><code>b8aee7a</code></a> <code>fix: Add error message for duplicate route param name (#8047)</code></li>
<li><a href="https://urls.greenkeeper.io/zeit/next.js/commit/c61f6c1200f86a1dab72b983d7d8274d4de90160"><code>c61f6c1</code></a> <code>Test environment code should target Node (#8181)</code></li>
<li><a href="https://urls.greenkeeper.io/zeit/next.js/commit/4850bd03ef113de3e306099049cd7241ba9ca798"><code>4850bd0</code></a> <code>Provide AppTree to getInitialProps for getDataFromTree (#7732)</code></li>
<li><a href="https://urls.greenkeeper.io/zeit/next.js/commit/72098328cfcc36dcadb0fbc7848f5020c5939213"><code>7209832</code></a> <code>Fix a typo in README (#8177)</code></li>
<li><a href="https://urls.greenkeeper.io/zeit/next.js/commit/3e03fee2787b6b33fdef89a1d7abdce253e58a02"><code>3e03fee</code></a> <code>Fix build only server-side <code>/api/index.js</code> (#8167)</code></li>
<li><a href="https://urls.greenkeeper.io/zeit/next.js/commit/9659b4b555fc99edde717e5607c6a4ee8c46b22b"><code>9659b4b</code></a> <code>Optional Server Compression (#8066)</code></li>
<li><a href="https://urls.greenkeeper.io/zeit/next.js/commit/df213f7aabc2c598a194a7a161d1f6c22dc90e58"><code>df213f7</code></a> <code>Include <code>scheduler</code> in React bundle (#8164)</code></li>
<li><a href="https://urls.greenkeeper.io/zeit/next.js/commit/7b33fbbfe677f7fa1a6e1ab1c41c732fa2d62da4"><code>7b33fbb</code></a> <code>v9.0.3-canary.5</code></li>
<li><a href="https://urls.greenkeeper.io/zeit/next.js/commit/91f60cdadf54c71db3749f4aa02a99c21702b93f"><code>91f60cd</code></a> <code>refactor(webpack): extract splitChunksConfig (#8161)</code></li>
<li><a href="https://urls.greenkeeper.io/zeit/next.js/commit/25fd3f86a3f7b7ad9075563f6f4a5dddf3079f00"><code>25fd3f8</code></a> <code>Update missed lockfile</code></li>
</ul>
<p>There are 73 commits in total.</p>
<p>See the <a href="https://urls.greenkeeper.io/zeit/next.js/compare/becd07402e6ed0145618972e80e81657050dadae...00b56c6ede6fce26c300d3864f70ce1ecbe5fb1d">full diff</a></p>
</details>

---

<details>
  <summary>FAQ and help</summary>

  There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).
</details>

---


Your [Greenkeeper](https://greenkeeper.io) bot 🌴
iquabius added a commit to iquabius/olimat that referenced this pull request Jun 17, 2020
"Error while running `getDataFromTree` TypeError: Cannot read property
'pathname' of null".

There's a lot of code I added in this commit just to debug what was
going on, but the important part is the usage of `AppTree` instead
of the composed `App` when using `getDataFromTree()`.

The issue is documented here:
vercel/next.js#7731

And solved here:
vercel/next.js#7732
iquabius added a commit to iquabius/olimat that referenced this pull request Jun 18, 2020
* Update Next.js to version 9.1.4

"Upgrade to latest release in a follow-up since they changed how they polyfill."
See https://github.com/mui-org/material-ui/pull/18441/files#r386433177.

* Move next.config.js out of "src" directory

Next.js supports "src" directory since version 9.1:
https://nextjs.org/blog/next-9-1#src-directory-support

* Move "packages/web/src/static" to "packages/web/public/static"

The public directory was also introduced in version 9.1:
https://nextjs.org/blog/next-9-1#public-directory-support.

* Autofix tsconfig.json after running "next"

npm run dev

* Remove @zeit/next-typescript/babel from .babelrc

https://nextjs.org/blog/next-9#built-in-zero-config-typescript-support

* Remove "prefetch" prop from usage of Link

Next.js "will automatically prefetch <Link> components as they appear
in-viewport" since version 9.0.

See:

- https://nextjs.org/blog/next-9#production-optimizations
- https://nextjs.org/docs/api-reference/next/link

* Remove Container from pages/_app.tsx

Container was deprecated in v9.0.4:
https://err.sh/zeit/next.js/app-container-deprecated

* Disable option "isolatedModules" in tsconfig.json

For now just to make the tests run in CI. Later we can
figure out if it's "declaration" that should go away.

* Fix unavailable next/router in getDataFromTree()

"Error while running `getDataFromTree` TypeError: Cannot read property
'pathname' of null".

There's a lot of code I added in this commit just to debug what was
going on, but the important part is the usage of `AppTree` instead
of the composed `App` when using `getDataFromTree()`.

The issue is documented here:
vercel/next.js#7731

And solved here:
vercel/next.js#7732

* Revert "Update Next.js to version 9.1.4"

This reverts commit bbc417d.

* Update Next.js again after solving conflict...

...in package-lock.json

https://stackoverflow.com/a/54127283/1787829

* Fix next/router interface with nprogress in AppFrame

* Enable "isolatedModules" back in packages/web/tsconfig.json

Babel, through Next.js, need this very badly:

"The following changes are being made to your tsconfig.json file:
  - compilerOptions.isolatedModules must be true (requirement for babel)"

* Replace withRouter() with useRouter()

* Fix FakeLoadingProvider not being a module

"error TS1208: All files must be modules when
the '--isolatedModules' flag is provided."

* Replace NextFunctionComponent with NextPage type

* Replace NextContext to NextPageContext in next.d.ts

* Fix mockRouter types in MockNextContext

* Add @olimat/api back to package.json

I removed by mistake when updating Next.js in
274a008

* Migrate MockNextContext to new context API

* Remove `as any` from MockNextContext router prop

* Add comment about Filepond's CSS in Next.js 9.0

* Disable 'composite' & 'declaration' in web/tsconfig.json

* Reword comment about isolatedModules in web/tsconfig.json

* Add `ls` to check node_modules/@olimat/api on CI

* Replace tabs with spaces in .circleci/config.yml

* Add more `ls` command to CI config

* Fix path in `ls` in CI config

* Separate building of api and web apps

* Fix CI config to build api before web app

* Change indent_style to spaces for yaml files and package.json

* Remove "env.test.presets" from .babelrc

* Replace withRouter() with useRouter() in Link

* Remove `ls` and `pwd` commands from CI config

* Fix next/router mock in ExamList test
@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
5 participants