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

Strongly type PageLoader #16132

Merged
merged 2 commits into from
Aug 12, 2020
Merged

Strongly type PageLoader #16132

merged 2 commits into from
Aug 12, 2020

Conversation

Timer
Copy link
Member

@Timer Timer commented Aug 12, 2020

Fixes #16131

@ijjk
Copy link
Member

ijjk commented Aug 12, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Timer/next.js types/page-loader Change
buildDuration 11.8s 11.9s ⚠️ +126ms
nodeModulesSize 57.3 MB 57.3 MB ⚠️ +2.76 kB
Page Load Tests Overall increase ✓
vercel/next.js canary Timer/next.js types/page-loader Change
/ failed reqs 0 0
/ total time (seconds) 2.226 2.234 ⚠️ +0.01
/ avg req/sec 1122.96 1119.23 ⚠️ -3.73
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.233 1.189 -0.04
/error-in-render avg req/sec 2026.77 2102.58 +75.81
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary Timer/next.js types/page-loader Change
677f882d2ed8..ee8a.js gzip 10 kB 10 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
main-9a7a5f4..661e.js gzip 6.71 kB 6.72 kB ⚠️ +3 B
webpack-ccf5..276a.js gzip 751 B 751 B
Overall change 56.6 kB 56.6 kB ⚠️ +3 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Timer/next.js types/page-loader Change
677f882d2ed8..dule.js gzip 5.92 kB 5.92 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
main-d0ac695..dule.js gzip 5.79 kB 5.79 kB ⚠️ +8 B
webpack-10c7..dule.js gzip 751 B 751 B
Overall change 51.6 kB 51.6 kB ⚠️ +8 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Timer/next.js types/page-loader Change
polyfills-75..1629.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Timer/next.js types/page-loader Change
_app-874bd8a..0103.js gzip 1.28 kB 1.28 kB
_error-fa39c..ec40.js gzip 3.45 kB 3.45 kB
hooks-585f07..95a3.js gzip 887 B 887 B
index-c7b63f..fc02.js gzip 227 B 227 B
link-4c2bd9b..eadd.js gzip 1.29 kB 1.29 kB
routerDirect..ebc7.js gzip 284 B 284 B
withRouter-2..db68.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary Timer/next.js types/page-loader Change
_app-97e743e..dule.js gzip 626 B 626 B
_error-b4004..dule.js gzip 2.3 kB 2.3 kB
hooks-696209..dule.js gzip 387 B 387 B
index-a4dd74..dule.js gzip 226 B 226 B
link-236a801..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-1..dule.js gzip 282 B 282 B
Overall change 5.37 kB 5.37 kB
Client Build Manifests
vercel/next.js canary Timer/next.js types/page-loader Change
_buildManifest.js gzip 273 B 273 B
_buildManife..dule.js gzip 279 B 279 B
Overall change 552 B 552 B
Rendered Page Sizes
vercel/next.js canary Timer/next.js types/page-loader Change
index.html gzip 947 B 947 B
link.html gzip 954 B 955 B ⚠️ +1 B
withRouter.html gzip 940 B 939 B -1 B
Overall change 2.84 kB 2.84 kB

Diffs

Diff for main-b2c679a..17.module.js
@@ -1162,7 +1162,6 @@
         function(cb) {
           return setTimeout(cb, 1);
         };
-      /** @param {string} route */
 
       function normalizeRoute(route) {
         if (route[0] !== "/") {
@@ -1175,8 +1174,8 @@
         return route.replace(/\/$/, "");
       }
 
-      function appendLink(href, rel, as) {
-        return new Promise((res, rej, link) => {
+      function appendLink(href, rel, as, link) {
+        return new Promise((res, rej) => {
           link = document.createElement("link");
           link.crossOrigin = "anonymous";
           link.href = href;
@@ -1190,6 +1189,13 @@
 
       class PageLoader {
         constructor(buildId, assetPrefix, initialPage) {
+          this.buildId = void 0;
+          this.assetPrefix = void 0;
+          this.pageCache = void 0;
+          this.pageRegisterEvents = void 0;
+          this.loadingRoutes = void 0;
+          this.promisedBuildManifest = void 0;
+          this.promisedSsgManifest = void 0;
           this.buildId = buildId;
           this.assetPrefix = assetPrefix;
           this.pageCache = {};
@@ -1229,17 +1235,14 @@
 
         getDependencies(route) {
           return this.promisedBuildManifest.then(m => {
-            var _this$pageRegisterEve;
-
             return m[route]
               ? m[route].map(url =>
                   "".concat(this.assetPrefix, "/_next/").concat(encodeURI(url))
                 )
-              : (_this$pageRegisterEve = this.pageRegisterEvents.emit(route, {
+              : (this.pageRegisterEvents.emit(route, {
                   error: pageLoadError(route)
-                })) != null
-              ? _this$pageRegisterEve
-              : [];
+                }),
+                []);
           });
         }
         /**
@@ -1255,20 +1258,15 @@
           _parseRelativeUrl.parseRelativeUrl)(asPath);
           var route = normalizeRoute(hrefPathname);
 
-          var getHrefForSlug =
-            /** @type string */
-            path => {
-              var dataRoute = (0, _getAssetPathFromRoute.default)(
-                path,
-                ".json"
-              );
-              return (0, _router.addBasePath)(
-                "/_next/data/"
-                  .concat(this.buildId)
-                  .concat(dataRoute)
-                  .concat(ssg ? "" : search)
-              );
-            };
+          var getHrefForSlug = path => {
+            var dataRoute = (0, _getAssetPathFromRoute.default)(path, ".json");
+            return (0, _router.addBasePath)(
+              "/_next/data/"
+                .concat(this.buildId)
+                .concat(dataRoute)
+                .concat(ssg ? "" : search)
+            );
+          };
 
           var isDynamic = (0, _isDynamic.isDynamicRoute)(route),
             interpolatedRoute;
Diff for main-d3421a9..998ca3c86.js
@@ -1523,7 +1523,6 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
         function(cb) {
           return setTimeout(cb, 1);
         };
-      /** @param {string} route */
 
       function normalizeRoute(route) {
         if (route[0] !== "/") {
@@ -1536,8 +1535,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
         return route.replace(/\/$/, "");
       }
 
-      function appendLink(href, rel, as) {
-        return new Promise(function(res, rej, link) {
+      function appendLink(href, rel, as, link) {
+        return new Promise(function(res, rej) {
           link = document.createElement("link");
           link.crossOrigin = "anonymous";
           link.href = href;
@@ -1553,6 +1552,13 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
         function PageLoader(buildId, assetPrefix, initialPage) {
           _classCallCheck(this, PageLoader);
 
+          this.buildId = void 0;
+          this.assetPrefix = void 0;
+          this.pageCache = void 0;
+          this.pageRegisterEvents = void 0;
+          this.loadingRoutes = void 0;
+          this.promisedBuildManifest = void 0;
+          this.promisedSsgManifest = void 0;
           this.buildId = buildId;
           this.assetPrefix = assetPrefix;
           this.pageCache = {};
@@ -1597,22 +1603,16 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               var _this = this;
 
               return this.promisedBuildManifest.then(function(m) {
-                var _this$pageRegisterEve;
-
                 return m[route]
                   ? m[route].map(function(url) {
                       return ""
                         .concat(_this.assetPrefix, "/_next/")
                         .concat(encodeURI(url));
                     })
-                  : (_this$pageRegisterEve = _this.pageRegisterEvents.emit(
-                      route,
-                      {
-                        error: pageLoadError(route)
-                      }
-                    )) != null
-                  ? _this$pageRegisterEve
-                  : [];
+                  : (_this.pageRegisterEvents.emit(route, {
+                      error: pageLoadError(route)
+                    }),
+                    []);
               });
             }
             /**
@@ -1639,20 +1639,18 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
 
               var route = normalizeRoute(hrefPathname);
 
-              var getHrefForSlug =
-                /** @type string */
-                function getHrefForSlug(path) {
-                  var dataRoute = (0, _getAssetPathFromRoute["default"])(
-                    path,
-                    ".json"
-                  );
-                  return (0, _router.addBasePath)(
-                    "/_next/data/"
-                      .concat(_this2.buildId)
-                      .concat(dataRoute)
-                      .concat(ssg ? "" : search)
-                  );
-                };
+              var getHrefForSlug = function getHrefForSlug(path) {
+                var dataRoute = (0, _getAssetPathFromRoute["default"])(
+                  path,
+                  ".json"
+                );
+                return (0, _router.addBasePath)(
+                  "/_next/data/"
+                    .concat(_this2.buildId)
+                    .concat(dataRoute)
+                    .concat(ssg ? "" : search)
+                );
+              };
 
               var isDynamic = (0, _isDynamic.isDynamicRoute)(route),
                 interpolatedRoute;
Diff for index.html
@@ -6,7 +6,7 @@
     <meta name="next-head-count" content="2" />
     <link
       rel="preload"
-      href="/_next/static/chunks/main-b2c679a983254aeb7617.module.js"
+      href="/_next/static/chunks/main-45dd573719aefbc1b512.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -81,13 +81,13 @@
       src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
     ></script>
     <script
-      src="/_next/static/chunks/main-d3421a9581b998ca3c86.js"
+      src="/_next/static/chunks/main-a22472456fd6408a53fd.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/main-b2c679a983254aeb7617.module.js"
+      src="/_next/static/chunks/main-45dd573719aefbc1b512.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -6,7 +6,7 @@
     <meta name="next-head-count" content="2" />
     <link
       rel="preload"
-      href="/_next/static/chunks/main-b2c679a983254aeb7617.module.js"
+      href="/_next/static/chunks/main-45dd573719aefbc1b512.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -86,13 +86,13 @@
       src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
     ></script>
     <script
-      src="/_next/static/chunks/main-d3421a9581b998ca3c86.js"
+      src="/_next/static/chunks/main-a22472456fd6408a53fd.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/main-b2c679a983254aeb7617.module.js"
+      src="/_next/static/chunks/main-45dd573719aefbc1b512.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -6,7 +6,7 @@
     <meta name="next-head-count" content="2" />
     <link
       rel="preload"
-      href="/_next/static/chunks/main-b2c679a983254aeb7617.module.js"
+      href="/_next/static/chunks/main-45dd573719aefbc1b512.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -81,13 +81,13 @@
       src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
     ></script>
     <script
-      src="/_next/static/chunks/main-d3421a9581b998ca3c86.js"
+      src="/_next/static/chunks/main-a22472456fd6408a53fd.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/main-b2c679a983254aeb7617.module.js"
+      src="/_next/static/chunks/main-45dd573719aefbc1b512.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Timer/next.js types/page-loader Change
buildDuration 13.5s 13.7s ⚠️ +220ms
nodeModulesSize 57.3 MB 57.3 MB ⚠️ +2.76 kB
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary Timer/next.js types/page-loader Change
677f882d2ed8..ee8a.js gzip 10 kB 10 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
main-9a7a5f4..661e.js gzip 6.71 kB N/A N/A
webpack-ccf5..276a.js gzip 751 B 751 B
main-25aa383..eece.js gzip N/A 6.72 kB N/A
Overall change 56.6 kB 56.6 kB ⚠️ +3 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Timer/next.js types/page-loader Change
677f882d2ed8..dule.js gzip 5.92 kB 5.92 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
main-d0ac695..dule.js gzip 5.79 kB N/A N/A
webpack-10c7..dule.js gzip 751 B 751 B
main-08f768c..dule.js gzip N/A 5.79 kB N/A
Overall change 51.6 kB 51.6 kB ⚠️ +8 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Timer/next.js types/page-loader Change
polyfills-75..1629.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Timer/next.js types/page-loader Change
_app-874bd8a..0103.js gzip 1.28 kB 1.28 kB
_error-fa39c..ec40.js gzip 3.45 kB 3.45 kB
hooks-585f07..95a3.js gzip 887 B 887 B
index-c7b63f..fc02.js gzip 227 B 227 B
link-4c2bd9b..eadd.js gzip 1.29 kB 1.29 kB
routerDirect..ebc7.js gzip 284 B 284 B
withRouter-2..db68.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary Timer/next.js types/page-loader Change
_app-97e743e..dule.js gzip 626 B 626 B
_error-b4004..dule.js gzip 2.3 kB 2.3 kB
hooks-696209..dule.js gzip 387 B 387 B
index-a4dd74..dule.js gzip 226 B 226 B
link-236a801..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-1..dule.js gzip 282 B 282 B
Overall change 5.37 kB 5.37 kB
Client Build Manifests
vercel/next.js canary Timer/next.js types/page-loader Change
_buildManifest.js gzip 273 B 273 B
_buildManife..dule.js gzip 279 B 279 B
Overall change 552 B 552 B
Serverless bundles
vercel/next.js canary Timer/next.js types/page-loader Change
_error.js 1.03 MB 1.03 MB
404.html 4.18 kB 4.18 kB
hooks.html 3.82 kB 3.82 kB
index.js 1.03 MB 1.03 MB
link.js 1.07 MB 1.07 MB
routerDirect.js 1.06 MB 1.06 MB
withRouter.js 1.06 MB 1.06 MB
Overall change 5.26 MB 5.26 MB
Commit: 2cd5620

@kodiakhq kodiakhq bot merged commit 9e65c6a into vercel:canary Aug 12, 2020
@Timer Timer deleted the types/page-loader branch August 12, 2020 20:42
m-lautenbach pushed a commit to m-lautenbach/next.js that referenced this pull request Aug 20, 2020
@vercel vercel locked as resolved and limited conversation to collaborators Jan 30, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[internal] Strongly type page loader
3 participants