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

Fix dynamic APIs with query params #8386

Merged
merged 4 commits into from
Aug 19, 2019
Merged

Fix dynamic APIs with query params #8386

merged 4 commits into from
Aug 19, 2019

Conversation

Deadleg
Copy link
Contributor

@Deadleg Deadleg commented Aug 16, 2019

If you define a dynamic API such as

pages/
  api/
    [id].js

This api becomes available at /api/[id]. If you send a request with
a query parameter the value of req.query.id will include the query
string as well as the path parameter.

E.g. the request to /api/2?test=123 will result in req.query
being

{
  id: "2?test=123",
  test: "123",
}

instead of

{
  id: "2",
  test: "123",
}

@ijjk
Copy link
Member

ijjk commented Aug 16, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
buildDuration 25.5s 25.1s -436ms
nodeModulesSize 41.3 MB 41.3 MB ⚠️ +22 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.56 kB 6.56 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
commons.HASH.js 190 kB 190 kB ⚠️ +11 B
commons.HASH.js gzip 61.6 kB 61.6 kB ⚠️ +9 B
Overall change ⚠️ +11 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.module.js 16.2 kB 16.2 kB
main-HASH.module.js gzip 6.28 kB 6.28 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
commons.HASH.module.js 171 kB 171 kB ⚠️ +11 B
commons.HASH.module.js gzip 55.4 kB 55.4 kB ⚠️ +9 B
Overall change ⚠️ +11 B
Client Pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.js 1.9 kB 1.9 kB
_app.js gzip 905 B 905 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB
hooks.js 1.06 kB 1.06 kB
hooks.js gzip 600 B 600 B
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.13 kB 8.13 kB
link.js gzip 3.49 kB 3.49 kB
routerDirect.js 429 B 429 B
routerDirect.js gzip 292 B 292 B
withRouter.js 439 B 439 B
withRouter.js gzip 290 B 290 B
Overall change
Client Pages Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.module.js 1.79 kB 1.79 kB
_app.module.js gzip 865 B 865 B
_error.module.js 10.6 kB 10.6 kB
_error.module.js gzip 4.31 kB 4.31 kB
hooks.module.js 596 B 596 B
hooks.module.js gzip 354 B 354 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.67 kB 3.67 kB
routerDirect.module.js 417 B 417 B
routerDirect.module.js gzip 292 B 292 B
withRouter.module.js 427 B 427 B
withRouter.module.js gzip 291 B 291 B
Overall change
Fetched pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
link 2.8 kB 2.8 kB
link gzip 850 B 850 B
index 2.75 kB 2.75 kB
index gzip 838 B 839 B ⚠️ +1 B
withRouter 2.81 kB 2.81 kB
withRouter gzip 837 B 838 B ⚠️ +1 B
Overall change

Diffs

Diff for commons.HASH.js
@@ -722,10 +722,10 @@ function getRouteRegex(normalizedRoute) {
   var groupIndex = 1;
   var parameterizedRoute = escapedRoute.replace(/\/\\\[([^\/]+?)\\\](?=\/|$)/g, function (_, $1) {
     return groups[$1 // Un-escape key
-    .replace(/\\([|\\{}()[\]^$+*?.-])/g, '$1')] = groupIndex++, '/([^/]+?)';
+    .replace(/\\([|\\{}()[\]^$+*?.-])/g, '$1')] = groupIndex++, '/([^/?]+?)';
   });
   return {
-    re: new RegExp('^' + parameterizedRoute + '(?:/)?$', 'i'),
+    re: new RegExp('^' + parameterizedRoute + '(?:/)?(?:\\?.*)?$', 'i'),
     groups: groups
   };
 }
Diff for commons.HASH.module.js
@@ -501,9 +501,9 @@ function getRouteRegex(normalizedRoute) {
   const groups = {};
   let groupIndex = 1;
   const parameterizedRoute = escapedRoute.replace(/\/\\\[([^\/]+?)\\\](?=\/|$)/g, (_, $1) => (groups[$1 // Un-escape key
-  .replace(/\\([|\\{}()[\]^$+*?.-])/g, '$1')] = groupIndex++, '/([^/]+?)'));
+  .replace(/\\([|\\{}()[\]^$+*?.-])/g, '$1')] = groupIndex++, '/([^/?]+?)'));
   return {
-    re: new RegExp('^' + parameterizedRoute + '(?:/)?$', 'i'),
+    re: new RegExp('^' + parameterizedRoute + '(?:/)?(?:\\?.*)?$', 'i'),
     groups
   };
 }

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
buildDuration 26s 26.6s ⚠️ +604ms
nodeModulesSize 41.3 MB 41.3 MB ⚠️ +22 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.56 kB 6.56 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
commons.HASH.js 190 kB 190 kB ⚠️ +11 B
commons.HASH.js gzip 61.6 kB 61.6 kB ⚠️ +9 B
Overall change ⚠️ +11 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.module.js 16.2 kB 16.2 kB
main-HASH.module.js gzip 6.28 kB 6.28 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
commons.HASH.module.js 171 kB 171 kB ⚠️ +11 B
commons.HASH.module.js gzip 55.4 kB 55.4 kB ⚠️ +9 B
Overall change ⚠️ +11 B
Client Pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.js 1.9 kB 1.9 kB
_app.js gzip 905 B 905 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB
hooks.js 1.06 kB 1.06 kB
hooks.js gzip 600 B 600 B
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.13 kB 8.13 kB
link.js gzip 3.49 kB 3.49 kB
routerDirect.js 429 B 429 B
routerDirect.js gzip 292 B 292 B
withRouter.js 439 B 439 B
withRouter.js gzip 290 B 290 B
Overall change
Client Pages Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.module.js 1.79 kB 1.79 kB
_app.module.js gzip 865 B 865 B
_error.module.js 10.6 kB 10.6 kB
_error.module.js gzip 4.31 kB 4.31 kB
hooks.module.js 596 B 596 B
hooks.module.js gzip 354 B 354 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.67 kB 3.67 kB
routerDirect.module.js 417 B 417 B
routerDirect.module.js gzip 292 B 292 B
withRouter.module.js 427 B 427 B
withRouter.module.js gzip 291 B 291 B
Overall change
Serverless bundles Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_error.js 247 kB 247 kB ⚠️ +11 B
_error.js gzip 66.3 kB 66.3 kB ⚠️ +12 B
hooks.html 2.87 kB 2.87 kB
hooks.html gzip 867 B 863 B -4 B
index.js 248 kB 248 kB ⚠️ +11 B
index.js gzip 66.6 kB 66.6 kB ⚠️ +12 B
link.js 255 kB 255 kB ⚠️ +11 B
link.js gzip 68.8 kB 68.8 kB ⚠️ +11 B
routerDirect.js 248 kB 248 kB ⚠️ +11 B
routerDirect.js gzip 66.5 kB 66.5 kB ⚠️ +13 B
withRouter.js 248 kB 248 kB ⚠️ +11 B
withRouter.js gzip 66.6 kB 66.6 kB ⚠️ +11 B
Overall change ⚠️ +55 B

@ijjk
Copy link
Member

ijjk commented Aug 16, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
buildDuration 27s 27.2s ⚠️ +217ms
nodeModulesSize 41.3 MB 41.3 MB ⚠️ +22 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.56 kB 6.56 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
commons.HASH.js 190 kB 190 kB ⚠️ +11 B
commons.HASH.js gzip 61.6 kB 61.6 kB ⚠️ +9 B
Overall change ⚠️ +11 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.module.js 16.2 kB 16.2 kB
main-HASH.module.js gzip 6.28 kB 6.28 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
commons.HASH.module.js 171 kB 171 kB ⚠️ +11 B
commons.HASH.module.js gzip 55.4 kB 55.4 kB ⚠️ +9 B
Overall change ⚠️ +11 B
Client Pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.js 1.9 kB 1.9 kB
_app.js gzip 905 B 905 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB
hooks.js 1.06 kB 1.06 kB
hooks.js gzip 600 B 600 B
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.13 kB 8.13 kB
link.js gzip 3.49 kB 3.49 kB
routerDirect.js 429 B 429 B
routerDirect.js gzip 292 B 292 B
withRouter.js 439 B 439 B
withRouter.js gzip 290 B 290 B
Overall change
Client Pages Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.module.js 1.79 kB 1.79 kB
_app.module.js gzip 865 B 865 B
_error.module.js 10.6 kB 10.6 kB
_error.module.js gzip 4.31 kB 4.31 kB
hooks.module.js 596 B 596 B
hooks.module.js gzip 354 B 354 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.67 kB 3.67 kB
routerDirect.module.js 417 B 417 B
routerDirect.module.js gzip 292 B 292 B
withRouter.module.js 427 B 427 B
withRouter.module.js gzip 291 B 291 B
Overall change
Fetched pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
link 2.8 kB 2.8 kB
link gzip 849 B 850 B ⚠️ +1 B
index 2.75 kB 2.75 kB
index gzip 839 B 841 B ⚠️ +2 B
withRouter 2.81 kB 2.81 kB
withRouter gzip 837 B 839 B ⚠️ +2 B
Overall change

Diffs

Diff for commons.HASH.js
@@ -722,10 +722,10 @@ function getRouteRegex(normalizedRoute) {
   var groupIndex = 1;
   var parameterizedRoute = escapedRoute.replace(/\/\\\[([^\/]+?)\\\](?=\/|$)/g, function (_, $1) {
     return groups[$1 // Un-escape key
-    .replace(/\\([|\\{}()[\]^$+*?.-])/g, '$1')] = groupIndex++, '/([^/]+?)';
+    .replace(/\\([|\\{}()[\]^$+*?.-])/g, '$1')] = groupIndex++, '/([^/?]+?)';
   });
   return {
-    re: new RegExp('^' + parameterizedRoute + '(?:/)?$', 'i'),
+    re: new RegExp('^' + parameterizedRoute + '(?:/)?(?:\\?.*)?$', 'i'),
     groups: groups
   };
 }
Diff for commons.HASH.module.js
@@ -501,9 +501,9 @@ function getRouteRegex(normalizedRoute) {
   const groups = {};
   let groupIndex = 1;
   const parameterizedRoute = escapedRoute.replace(/\/\\\[([^\/]+?)\\\](?=\/|$)/g, (_, $1) => (groups[$1 // Un-escape key
-  .replace(/\\([|\\{}()[\]^$+*?.-])/g, '$1')] = groupIndex++, '/([^/]+?)'));
+  .replace(/\\([|\\{}()[\]^$+*?.-])/g, '$1')] = groupIndex++, '/([^/?]+?)'));
   return {
-    re: new RegExp('^' + parameterizedRoute + '(?:/)?$', 'i'),
+    re: new RegExp('^' + parameterizedRoute + '(?:/)?(?:\\?.*)?$', 'i'),
     groups
   };
 }

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
buildDuration 28s 28.4s ⚠️ +438ms
nodeModulesSize 41.3 MB 41.3 MB ⚠️ +22 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.56 kB 6.56 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
commons.HASH.js 190 kB 190 kB ⚠️ +11 B
commons.HASH.js gzip 61.6 kB 61.6 kB ⚠️ +9 B
Overall change ⚠️ +11 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.module.js 16.2 kB 16.2 kB
main-HASH.module.js gzip 6.28 kB 6.28 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
commons.HASH.module.js 171 kB 171 kB ⚠️ +11 B
commons.HASH.module.js gzip 55.4 kB 55.4 kB ⚠️ +9 B
Overall change ⚠️ +11 B
Client Pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.js 1.9 kB 1.9 kB
_app.js gzip 905 B 905 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB
hooks.js 1.06 kB 1.06 kB
hooks.js gzip 600 B 600 B
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.13 kB 8.13 kB
link.js gzip 3.49 kB 3.49 kB
routerDirect.js 429 B 429 B
routerDirect.js gzip 292 B 292 B
withRouter.js 439 B 439 B
withRouter.js gzip 290 B 290 B
Overall change
Client Pages Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.module.js 1.79 kB 1.79 kB
_app.module.js gzip 865 B 865 B
_error.module.js 10.6 kB 10.6 kB
_error.module.js gzip 4.31 kB 4.31 kB
hooks.module.js 596 B 596 B
hooks.module.js gzip 354 B 354 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.67 kB 3.67 kB
routerDirect.module.js 417 B 417 B
routerDirect.module.js gzip 292 B 292 B
withRouter.module.js 427 B 427 B
withRouter.module.js gzip 291 B 291 B
Overall change
Serverless bundles Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_error.js 247 kB 247 kB ⚠️ +11 B
_error.js gzip 66.3 kB 66.3 kB ⚠️ +11 B
hooks.html 2.87 kB 2.87 kB
hooks.html gzip 867 B 864 B -3 B
index.js 248 kB 248 kB ⚠️ +11 B
index.js gzip 66.6 kB 66.6 kB ⚠️ +11 B
link.js 255 kB 255 kB ⚠️ +11 B
link.js gzip 68.8 kB 68.8 kB ⚠️ +10 B
routerDirect.js 248 kB 248 kB ⚠️ +11 B
routerDirect.js gzip 66.5 kB 66.5 kB ⚠️ +11 B
withRouter.js 248 kB 248 kB ⚠️ +11 B
withRouter.js gzip 66.6 kB 66.6 kB ⚠️ +10 B
Overall change ⚠️ +55 B

@huv1k
Copy link
Contributor

huv1k commented Aug 16, 2019

Thank you @Deadleg, great catch :)

@mattdell
Copy link

Thanks for this fix @Deadleg!

I desperately need this as it's blocking some work I want to release (without a workaround). When can we get this out?

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.

This is not the correct fix -- the route regex needs to remain untouched.

The URL needs to be parsed in the routing/render layer similar to the way a normal page is handled.

I'm on my phone so I cannot provide a link, but I wanted to make sure this wasn't merged as-is.

@Timer Timer added this to the 9.0.4 milestone Aug 18, 2019
If you define a dynamic API such as

```
pages/
  api/
    [id].js
```

This api becomes available at `/api/[id]`. If you send a request with
a query parameter the value of `req.query.id` will include the query
string as well as the path parameter.

E.g. the request to `/api/2?test=123` will result in `req.query`
being

```javascript
{
  id: "2?test=123",
  test: "123",
}
```

instead of

```javascript
{
  id: "2",
  test: "123",
}
```
@ijjk
Copy link
Member

ijjk commented Aug 18, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
buildDuration 26s 26.2s ⚠️ +200ms
nodeModulesSize 41.3 MB 41.3 MB ⚠️ +22 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.56 kB 6.56 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
commons.HASH.js 190 kB 190 kB ⚠️ +11 B
commons.HASH.js gzip 61.6 kB 61.6 kB ⚠️ +9 B
Overall change ⚠️ +11 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.module.js 16.2 kB 16.2 kB
main-HASH.module.js gzip 6.28 kB 6.28 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
commons.HASH.module.js 171 kB 171 kB ⚠️ +11 B
commons.HASH.module.js gzip 55.4 kB 55.4 kB ⚠️ +9 B
Overall change ⚠️ +11 B
Client Pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.js 1.9 kB 1.9 kB
_app.js gzip 905 B 905 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB
hooks.js 1.06 kB 1.06 kB
hooks.js gzip 600 B 600 B
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.13 kB 8.13 kB
link.js gzip 3.49 kB 3.49 kB
routerDirect.js 429 B 429 B
routerDirect.js gzip 292 B 292 B
withRouter.js 439 B 439 B
withRouter.js gzip 290 B 290 B
Overall change
Client Pages Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.module.js 1.79 kB 1.79 kB
_app.module.js gzip 865 B 865 B
_error.module.js 10.6 kB 10.6 kB
_error.module.js gzip 4.31 kB 4.31 kB
hooks.module.js 596 B 596 B
hooks.module.js gzip 354 B 354 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.67 kB 3.67 kB
routerDirect.module.js 417 B 417 B
routerDirect.module.js gzip 292 B 292 B
withRouter.module.js 427 B 427 B
withRouter.module.js gzip 291 B 291 B
Overall change
Fetched pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
link 2.8 kB 2.8 kB
link gzip 849 B 848 B -1 B
index 2.75 kB 2.75 kB
index gzip 842 B 841 B -1 B
withRouter 2.81 kB 2.81 kB
withRouter gzip 837 B 836 B -1 B
Overall change

Diffs

Diff for commons.HASH.js
@@ -722,10 +722,10 @@ function getRouteRegex(normalizedRoute) {
   var groupIndex = 1;
   var parameterizedRoute = escapedRoute.replace(/\/\\\[([^\/]+?)\\\](?=\/|$)/g, function (_, $1) {
     return groups[$1 // Un-escape key
-    .replace(/\\([|\\{}()[\]^$+*?.-])/g, '$1')] = groupIndex++, '/([^/]+?)';
+    .replace(/\\([|\\{}()[\]^$+*?.-])/g, '$1')] = groupIndex++, '/([^/?]+?)';
   });
   return {
-    re: new RegExp('^' + parameterizedRoute + '(?:/)?$', 'i'),
+    re: new RegExp('^' + parameterizedRoute + '(?:/)?(?:\\?.*)?$', 'i'),
     groups: groups
   };
 }
Diff for commons.HASH.module.js
@@ -501,9 +501,9 @@ function getRouteRegex(normalizedRoute) {
   const groups = {};
   let groupIndex = 1;
   const parameterizedRoute = escapedRoute.replace(/\/\\\[([^\/]+?)\\\](?=\/|$)/g, (_, $1) => (groups[$1 // Un-escape key
-  .replace(/\\([|\\{}()[\]^$+*?.-])/g, '$1')] = groupIndex++, '/([^/]+?)'));
+  .replace(/\\([|\\{}()[\]^$+*?.-])/g, '$1')] = groupIndex++, '/([^/?]+?)'));
   return {
-    re: new RegExp('^' + parameterizedRoute + '(?:/)?$', 'i'),
+    re: new RegExp('^' + parameterizedRoute + '(?:/)?(?:\\?.*)?$', 'i'),
     groups
   };
 }

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
buildDuration 27.4s 27.8s ⚠️ +391ms
nodeModulesSize 41.3 MB 41.3 MB ⚠️ +22 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.56 kB 6.56 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
commons.HASH.js 190 kB 190 kB ⚠️ +11 B
commons.HASH.js gzip 61.6 kB 61.6 kB ⚠️ +9 B
Overall change ⚠️ +11 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.module.js 16.2 kB 16.2 kB
main-HASH.module.js gzip 6.28 kB 6.28 kB ⚠️ +1 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
commons.HASH.module.js 171 kB 171 kB ⚠️ +11 B
commons.HASH.module.js gzip 55.4 kB 55.4 kB ⚠️ +9 B
Overall change ⚠️ +11 B
Client Pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.js 1.9 kB 1.9 kB
_app.js gzip 905 B 905 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB
hooks.js 1.06 kB 1.06 kB
hooks.js gzip 601 B 600 B -1 B
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.13 kB 8.13 kB
link.js gzip 3.49 kB 3.49 kB ⚠️ +1 B
routerDirect.js 429 B 429 B
routerDirect.js gzip 292 B 292 B
withRouter.js 439 B 439 B
withRouter.js gzip 289 B 290 B ⚠️ +1 B
Overall change
Client Pages Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.module.js 1.79 kB 1.79 kB
_app.module.js gzip 865 B 865 B
_error.module.js 10.6 kB 10.6 kB
_error.module.js gzip 4.31 kB 4.31 kB
hooks.module.js 596 B 596 B
hooks.module.js gzip 354 B 354 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.67 kB 3.67 kB
routerDirect.module.js 417 B 417 B
routerDirect.module.js gzip 292 B 292 B
withRouter.module.js 427 B 427 B
withRouter.module.js gzip 291 B 291 B
Overall change
Serverless bundles Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_error.js 247 kB 247 kB ⚠️ +11 B
_error.js gzip 66.3 kB 66.3 kB ⚠️ +10 B
hooks.html 2.87 kB 2.87 kB
hooks.html gzip 866 B 864 B -2 B
index.js 248 kB 248 kB ⚠️ +11 B
index.js gzip 66.6 kB 66.6 kB ⚠️ +9 B
link.js 255 kB 255 kB ⚠️ +11 B
link.js gzip 68.8 kB 68.8 kB ⚠️ +8 B
routerDirect.js 248 kB 248 kB ⚠️ +11 B
routerDirect.js gzip 66.5 kB 66.5 kB ⚠️ +9 B
withRouter.js 248 kB 248 kB ⚠️ +11 B
withRouter.js gzip 66.6 kB 66.6 kB ⚠️ +11 B
Overall change ⚠️ +55 B

@Deadleg
Copy link
Contributor Author

Deadleg commented Aug 19, 2019

@Timer From what I can see the entry point is defined in next-serverless-loader.ts were I could add a url.parse and use the parsed path for route matching. This looks like what the non-API pages do.

Isn't this regex broken anyway? Matching with the query parameters gives unexpected results which is what resulted in this issue.

@Timer
Copy link
Member

Timer commented Aug 19, 2019

Query parameters should never make it to that regex, so yeah, we should parse via url.parse the same way pages do!

@huv1k
Copy link
Contributor

huv1k commented Aug 19, 2019

Hey @Deadleg, I updated your PR to reflect wanted changes.

@ijjk
Copy link
Member

ijjk commented Aug 19, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
buildDuration 24.5s 23.7s -708ms
nodeModulesSize 41.3 MB 41.3 MB ⚠️ +13.6 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.56 kB 6.56 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
commons.HASH.js 190 kB 190 kB
commons.HASH.js gzip 61.6 kB 61.6 kB
Overall change
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.module.js 16.2 kB 16.2 kB
main-HASH.module.js gzip 6.28 kB 6.28 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
commons.HASH.module.js 171 kB 171 kB
commons.HASH.module.js gzip 55.4 kB 55.4 kB
Overall change
Client Pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.js 1.9 kB 1.9 kB
_app.js gzip 905 B 905 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB
hooks.js 1.06 kB 1.06 kB
hooks.js gzip 600 B 600 B
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.13 kB 8.13 kB
link.js gzip 3.49 kB 3.49 kB
routerDirect.js 429 B 429 B
routerDirect.js gzip 292 B 292 B
withRouter.js 439 B 439 B
withRouter.js gzip 290 B 290 B
Overall change
Client Pages Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.module.js 1.79 kB 1.79 kB
_app.module.js gzip 865 B 865 B
_error.module.js 10.6 kB 10.6 kB
_error.module.js gzip 4.31 kB 4.31 kB
hooks.module.js 596 B 596 B
hooks.module.js gzip 354 B 354 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.67 kB 3.67 kB
routerDirect.module.js 417 B 417 B
routerDirect.module.js gzip 292 B 292 B
withRouter.module.js 427 B 427 B
withRouter.module.js gzip 291 B 291 B
Overall change
Fetched pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
link 2.8 kB 2.8 kB
link gzip 850 B 851 B ⚠️ +1 B
index 2.75 kB 2.75 kB
index gzip 842 B 843 B ⚠️ +1 B
withRouter 2.81 kB 2.81 kB
withRouter gzip 839 B 839 B
Overall change

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
buildDuration 25.2s 25.7s ⚠️ +521ms
nodeModulesSize 41.3 MB 41.3 MB ⚠️ +13.6 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.56 kB 6.56 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
commons.HASH.js 190 kB 190 kB
commons.HASH.js gzip 61.6 kB 61.6 kB
Overall change
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.module.js 16.2 kB 16.2 kB
main-HASH.module.js gzip 6.28 kB 6.28 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
commons.HASH.module.js 171 kB 171 kB
commons.HASH.module.js gzip 55.4 kB 55.4 kB
Overall change
Client Pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.js 1.9 kB 1.9 kB
_app.js gzip 905 B 905 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB
hooks.js 1.06 kB 1.06 kB
hooks.js gzip 600 B 600 B
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.13 kB 8.13 kB
link.js gzip 3.49 kB 3.49 kB
routerDirect.js 429 B 429 B
routerDirect.js gzip 292 B 292 B
withRouter.js 439 B 439 B
withRouter.js gzip 290 B 290 B
Overall change
Client Pages Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.module.js 1.79 kB 1.79 kB
_app.module.js gzip 865 B 865 B
_error.module.js 10.6 kB 10.6 kB
_error.module.js gzip 4.31 kB 4.31 kB
hooks.module.js 596 B 596 B
hooks.module.js gzip 354 B 354 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.67 kB 3.67 kB
routerDirect.module.js 417 B 417 B
routerDirect.module.js gzip 292 B 292 B
withRouter.module.js 427 B 427 B
withRouter.module.js gzip 291 B 291 B
Overall change
Serverless bundles
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_error.js 247 kB 247 kB
_error.js gzip 66.3 kB 66.3 kB ⚠️ +1 B
hooks.html 2.87 kB 2.87 kB
hooks.html gzip 865 B 864 B -1 B
index.js 248 kB 248 kB
index.js gzip 66.6 kB 66.6 kB
link.js 255 kB 255 kB
link.js gzip 68.8 kB 68.8 kB
routerDirect.js 248 kB 248 kB
routerDirect.js gzip 66.5 kB 66.5 kB ⚠️ +1 B
withRouter.js 248 kB 248 kB
withRouter.js gzip 66.6 kB 66.6 kB
Overall change

@Timer
Copy link
Member

Timer commented Aug 19, 2019

Thanks everyone!

@ijjk
Copy link
Member

ijjk commented Aug 19, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
buildDuration 24.6s 25.5s ⚠️ +927ms
nodeModulesSize 41.3 MB 41.3 MB ⚠️ +13.6 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.56 kB 6.56 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
commons.HASH.js 190 kB 190 kB
commons.HASH.js gzip 61.6 kB 61.6 kB
Overall change
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.module.js 16.2 kB 16.2 kB
main-HASH.module.js gzip 6.28 kB 6.28 kB ⚠️ +1 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
commons.HASH.module.js 171 kB 171 kB
commons.HASH.module.js gzip 55.4 kB 55.4 kB
Overall change
Client Pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.js 1.9 kB 1.9 kB
_app.js gzip 905 B 905 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB
hooks.js 1.06 kB 1.06 kB
hooks.js gzip 601 B 600 B -1 B
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.13 kB 8.13 kB
link.js gzip 3.49 kB 3.49 kB ⚠️ +1 B
routerDirect.js 429 B 429 B
routerDirect.js gzip 292 B 292 B
withRouter.js 439 B 439 B
withRouter.js gzip 289 B 290 B ⚠️ +1 B
Overall change
Client Pages Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.module.js 1.79 kB 1.79 kB
_app.module.js gzip 865 B 865 B
_error.module.js 10.6 kB 10.6 kB
_error.module.js gzip 4.31 kB 4.31 kB
hooks.module.js 596 B 596 B
hooks.module.js gzip 354 B 354 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.67 kB 3.67 kB
routerDirect.module.js 417 B 417 B
routerDirect.module.js gzip 292 B 292 B
withRouter.module.js 427 B 427 B
withRouter.module.js gzip 291 B 291 B
Overall change
Fetched pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
link 2.8 kB 2.8 kB
link gzip 849 B 849 B
index 2.75 kB 2.75 kB
index gzip 837 B 842 B ⚠️ +5 B
withRouter 2.81 kB 2.81 kB
withRouter gzip 836 B 836 B
Overall change

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
buildDuration 26.9s 26.6s -232ms
nodeModulesSize 41.3 MB 41.3 MB ⚠️ +13.6 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.56 kB 6.56 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
commons.HASH.js 190 kB 190 kB
commons.HASH.js gzip 61.6 kB 61.6 kB
Overall change
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.module.js 16.2 kB 16.2 kB
main-HASH.module.js gzip 6.28 kB 6.28 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
commons.HASH.module.js 171 kB 171 kB
commons.HASH.module.js gzip 55.4 kB 55.4 kB
Overall change
Client Pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.js 1.9 kB 1.9 kB
_app.js gzip 905 B 905 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB
hooks.js 1.06 kB 1.06 kB
hooks.js gzip 600 B 600 B
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.13 kB 8.13 kB
link.js gzip 3.49 kB 3.49 kB
routerDirect.js 429 B 429 B
routerDirect.js gzip 292 B 292 B
withRouter.js 439 B 439 B
withRouter.js gzip 290 B 290 B
Overall change
Client Pages Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.module.js 1.79 kB 1.79 kB
_app.module.js gzip 865 B 865 B
_error.module.js 10.6 kB 10.6 kB
_error.module.js gzip 4.31 kB 4.31 kB
hooks.module.js 596 B 596 B
hooks.module.js gzip 354 B 354 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.67 kB 3.67 kB
routerDirect.module.js 417 B 417 B
routerDirect.module.js gzip 292 B 292 B
withRouter.module.js 427 B 427 B
withRouter.module.js gzip 291 B 291 B
Overall change
Serverless bundles
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_error.js 247 kB 247 kB
_error.js gzip 66.3 kB 66.3 kB ⚠️ +1 B
hooks.html 2.87 kB 2.87 kB
hooks.html gzip 862 B 866 B ⚠️ +4 B
index.js 248 kB 248 kB
index.js gzip 66.6 kB 66.6 kB ⚠️ +1 B
link.js 255 kB 255 kB
link.js gzip 68.8 kB 68.8 kB ⚠️ +1 B
routerDirect.js 248 kB 248 kB
routerDirect.js gzip 66.5 kB 66.5 kB ⚠️ +1 B
withRouter.js 248 kB 248 kB
withRouter.js gzip 66.6 kB 66.6 kB ⚠️ +2 B
Overall change

@ijjk
Copy link
Member

ijjk commented Aug 19, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
buildDuration 26.8s 26.7s -117ms
nodeModulesSize 41.3 MB 41.3 MB ⚠️ +100 B
Client Bundles (main, webpack, commons)
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.56 kB 6.56 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
commons.HASH.js 190 kB 190 kB
commons.HASH.js gzip 61.6 kB 61.6 kB
Overall change
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.module.js 16.2 kB 16.2 kB
main-HASH.module.js gzip 6.28 kB 6.28 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
commons.HASH.module.js 171 kB 171 kB
commons.HASH.module.js gzip 55.4 kB 55.4 kB
Overall change
Client Pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.js 1.9 kB 1.9 kB
_app.js gzip 905 B 905 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB
hooks.js 1.06 kB 1.06 kB
hooks.js gzip 600 B 600 B
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.13 kB 8.13 kB
link.js gzip 3.49 kB 3.49 kB
routerDirect.js 429 B 429 B
routerDirect.js gzip 292 B 292 B
withRouter.js 439 B 439 B
withRouter.js gzip 290 B 290 B
Overall change
Client Pages Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.module.js 1.79 kB 1.79 kB
_app.module.js gzip 865 B 865 B
_error.module.js 10.6 kB 10.6 kB
_error.module.js gzip 4.31 kB 4.31 kB
hooks.module.js 596 B 596 B
hooks.module.js gzip 354 B 354 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.67 kB 3.67 kB
routerDirect.module.js 417 B 417 B
routerDirect.module.js gzip 292 B 292 B
withRouter.module.js 427 B 427 B
withRouter.module.js gzip 291 B 291 B
Overall change
Fetched pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
link 2.8 kB 2.8 kB
link gzip 850 B 849 B -1 B
index 2.75 kB 2.75 kB
index gzip 842 B 842 B
withRouter 2.81 kB 2.81 kB
withRouter gzip 838 B 834 B -4 B
Overall change

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
buildDuration 27.1s 28.3s ⚠️ +1.3s
nodeModulesSize 41.3 MB 41.3 MB ⚠️ +100 B
Client Bundles (main, webpack, commons)
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.js 17.9 kB 17.9 kB
main-HASH.js gzip 6.56 kB 6.56 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
commons.HASH.js 190 kB 190 kB
commons.HASH.js gzip 61.6 kB 61.6 kB
Overall change
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
main-HASH.module.js 16.2 kB 16.2 kB
main-HASH.module.js gzip 6.28 kB 6.28 kB -1 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
commons.HASH.module.js 171 kB 171 kB
commons.HASH.module.js gzip 55.4 kB 55.4 kB
Overall change
Client Pages
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.js 1.9 kB 1.9 kB
_app.js gzip 905 B 905 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB
hooks.js 1.06 kB 1.06 kB
hooks.js gzip 600 B 601 B ⚠️ +1 B
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.13 kB 8.13 kB
link.js gzip 3.49 kB 3.49 kB -1 B
routerDirect.js 429 B 429 B
routerDirect.js gzip 292 B 292 B
withRouter.js 439 B 439 B
withRouter.js gzip 290 B 289 B -1 B
Overall change
Client Pages Modern
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_app.module.js 1.79 kB 1.79 kB
_app.module.js gzip 865 B 865 B
_error.module.js 10.6 kB 10.6 kB
_error.module.js gzip 4.31 kB 4.31 kB
hooks.module.js 596 B 596 B
hooks.module.js gzip 354 B 354 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.67 kB 3.67 kB
routerDirect.module.js 417 B 417 B
routerDirect.module.js gzip 292 B 292 B
withRouter.module.js 427 B 427 B
withRouter.module.js gzip 291 B 291 B
Overall change
Serverless bundles
zeit/next.js canary Deadleg/next.js fix/serverless-dynamic-api-path Change
_error.js 247 kB 247 kB
_error.js gzip 66.3 kB 66.3 kB ⚠️ +4 B
hooks.html 2.87 kB 2.87 kB
hooks.html gzip 866 B 867 B ⚠️ +1 B
index.js 248 kB 248 kB
index.js gzip 66.6 kB 66.6 kB ⚠️ +1 B
link.js 255 kB 255 kB
link.js gzip 68.8 kB 68.8 kB ⚠️ +1 B
routerDirect.js 248 kB 248 kB
routerDirect.js gzip 66.5 kB 66.5 kB ⚠️ +1 B
withRouter.js 248 kB 248 kB
withRouter.js gzip 66.6 kB 66.6 kB ⚠️ +1 B
Overall change

@Timer Timer merged commit ec95927 into vercel:canary Aug 19, 2019
@Deadleg Deadleg deleted the fix/serverless-dynamic-api-path branch August 19, 2019 20:48
@Deadleg
Copy link
Contributor Author

Deadleg commented Aug 19, 2019

Thanks guys!

@Timer
Copy link
Member

Timer commented Aug 19, 2019

This change has been released as next@9.0.4. You may upgrade your application(s)!

@vercel vercel locked as resolved and limited conversation to collaborators Feb 1, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants