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

Minor simplifications to renderToWebStream #31553

Merged
merged 4 commits into from
Nov 18, 2021

Conversation

devknoll
Copy link
Contributor

Simplifies renderToWebStream a little bit for #31223

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk
Copy link
Member

ijjk commented Nov 17, 2021

Failing test suites

Commit: 35817ed

test/integration/react-18/test/index.test.js

  • Concurrent mode > concurrentFeatures is enabled (dev) > should resolve suspense modules on server side if suspense
  • Concurrent mode > concurrentFeatures is enabled (dev) > should resolve suspense on server side if not suspended on server
  • Concurrent mode > concurrentFeatures is enabled (dev) > should resolve suspense on server side if suspended on server
  • Concurrent mode > concurrentFeatures is enabled (dev) > should hydrate suspenses on client side if suspended on server
  • Concurrent mode > concurrentFeatures is enabled (dev) > should drain the entire response
  • Concurrent mode > concurrentFeatures is enabled (prod) > should resolve suspense modules on server side if suspense
  • Concurrent mode > concurrentFeatures is enabled (prod) > should resolve suspense on server side if not suspended on server
  • Concurrent mode > concurrentFeatures is enabled (prod) > should resolve suspense on server side if suspended on server
  • Concurrent mode > concurrentFeatures is enabled (prod) > should hydrate suspenses on client side if suspended on server
  • Concurrent mode > concurrentFeatures is enabled (prod) > should drain the entire response
Expand output

● Concurrent mode › concurrentFeatures is enabled (dev) › should resolve suspense modules on server side if suspense

page.goto: Timeout 30000ms exceeded.
=========================== logs ===========================
navigating to "http://localhost:36005/suspense/no-preload", waiting until "load"
============================================================

   99 |               .evaluate(`console.log('received ws message ${frame.payload}')`)
  100 |               .catch(() => {})
> 101 |           }
      |            ^
  102 |         })
  103 |       })
  104 |     }

  at Playwright.loadPage (lib/browsers/playwright.ts:101:20)
  at Object.webdriver [as default] (lib/next-webdriver.ts:59:5)
  at withBrowser (integration/react-18/test/concurrent.js:17:23)
  at Object.<anonymous> (integration/react-18/test/concurrent.js:26:9)

● Concurrent mode › concurrentFeatures is enabled (dev) › should resolve suspense on server side if not suspended on server

page.goto: Timeout 30000ms exceeded.
=========================== logs ===========================
navigating to "http://localhost:36005/suspense/no-thrown", waiting until "load"
============================================================

   99 |               .evaluate(`console.log('received ws message ${frame.payload}')`)
  100 |               .catch(() => {})
> 101 |           }
      |            ^
  102 |         })
  103 |       })
  104 |     }

  at Playwright.loadPage (lib/browsers/playwright.ts:101:20)
  at Object.webdriver [as default] (lib/next-webdriver.ts:59:5)
  at withBrowser (integration/react-18/test/concurrent.js:17:23)
  at Object.<anonymous> (integration/react-18/test/concurrent.js:34:9)

● Concurrent mode › concurrentFeatures is enabled (dev) › should resolve suspense on server side if suspended on server

page.goto: Timeout 30000ms exceeded.
=========================== logs ===========================
navigating to "http://localhost:36005/suspense/thrown", waiting until "load"
============================================================

   99 |               .evaluate(`console.log('received ws message ${frame.payload}')`)
  100 |               .catch(() => {})
> 101 |           }
      |            ^
  102 |         })
  103 |       })
  104 |     }

  at Playwright.loadPage (lib/browsers/playwright.ts:101:20)
  at Object.webdriver [as default] (lib/next-webdriver.ts:59:5)
  at withBrowser (integration/react-18/test/concurrent.js:17:23)
  at Object.<anonymous> (integration/react-18/test/concurrent.js:42:9)

● Concurrent mode › concurrentFeatures is enabled (dev) › should hydrate suspenses on client side if suspended on server

page.goto: Timeout 30000ms exceeded.
=========================== logs ===========================
navigating to "http://localhost:36005/suspense/thrown", waiting until "load"
============================================================

   99 |               .evaluate(`console.log('received ws message ${frame.payload}')`)
  100 |               .catch(() => {})
> 101 |           }
      |            ^
  102 |         })
  103 |       })
  104 |     }

  at Playwright.loadPage (lib/browsers/playwright.ts:101:20)
  at Object.webdriver [as default] (lib/next-webdriver.ts:59:5)
  at withBrowser (integration/react-18/test/concurrent.js:17:23)
  at Object.<anonymous> (integration/react-18/test/concurrent.js:50:9)

● Concurrent mode › concurrentFeatures is enabled (dev) › should drain the entire response

page.goto: Timeout 30000ms exceeded.
=========================== logs ===========================
navigating to "http://localhost:36005/suspense/backpressure", waiting until "load"
============================================================

   99 |               .evaluate(`console.log('received ws message ${frame.payload}')`)
  100 |               .catch(() => {})
> 101 |           }
      |            ^
  102 |         })
  103 |       })
  104 |     }

  at Playwright.loadPage (lib/browsers/playwright.ts:101:20)
  at Object.webdriver [as default] (lib/next-webdriver.ts:59:5)
  at withBrowser (integration/react-18/test/concurrent.js:17:23)
  at Object.<anonymous> (integration/react-18/test/concurrent.js:58:9)

● Concurrent mode › concurrentFeatures is enabled (prod) › should resolve suspense modules on server side if suspense

page.goto: Timeout 30000ms exceeded.
=========================== logs ===========================
navigating to "http://localhost:34957/suspense/no-preload", waiting until "load"
============================================================

   99 |               .evaluate(`console.log('received ws message ${frame.payload}')`)
  100 |               .catch(() => {})
> 101 |           }
      |            ^
  102 |         })
  103 |       })
  104 |     }

  at Playwright.loadPage (lib/browsers/playwright.ts:101:20)
  at Object.webdriver [as default] (lib/next-webdriver.ts:59:5)
  at withBrowser (integration/react-18/test/concurrent.js:17:23)
  at Object.<anonymous> (integration/react-18/test/concurrent.js:26:9)

● Concurrent mode › concurrentFeatures is enabled (prod) › should resolve suspense on server side if not suspended on server

page.goto: Timeout 30000ms exceeded.
=========================== logs ===========================
navigating to "http://localhost:34957/suspense/no-thrown", waiting until "load"
============================================================

   99 |               .evaluate(`console.log('received ws message ${frame.payload}')`)
  100 |               .catch(() => {})
> 101 |           }
      |            ^
  102 |         })
  103 |       })
  104 |     }

  at Playwright.loadPage (lib/browsers/playwright.ts:101:20)
  at Object.webdriver [as default] (lib/next-webdriver.ts:59:5)
  at withBrowser (integration/react-18/test/concurrent.js:17:23)
  at Object.<anonymous> (integration/react-18/test/concurrent.js:34:9)

● Concurrent mode › concurrentFeatures is enabled (prod) › should resolve suspense on server side if suspended on server

page.goto: Timeout 30000ms exceeded.
=========================== logs ===========================
navigating to "http://localhost:34957/suspense/thrown", waiting until "load"
============================================================

   99 |               .evaluate(`console.log('received ws message ${frame.payload}')`)
  100 |               .catch(() => {})
> 101 |           }
      |            ^
  102 |         })
  103 |       })
  104 |     }

  at Playwright.loadPage (lib/browsers/playwright.ts:101:20)
  at Object.webdriver [as default] (lib/next-webdriver.ts:59:5)
  at withBrowser (integration/react-18/test/concurrent.js:17:23)
  at Object.<anonymous> (integration/react-18/test/concurrent.js:42:9)

● Concurrent mode › concurrentFeatures is enabled (prod) › should hydrate suspenses on client side if suspended on server

page.goto: Timeout 30000ms exceeded.
=========================== logs ===========================
navigating to "http://localhost:34957/suspense/thrown", waiting until "load"
============================================================

   99 |               .evaluate(`console.log('received ws message ${frame.payload}')`)
  100 |               .catch(() => {})
> 101 |           }
      |            ^
  102 |         })
  103 |       })
  104 |     }

  at Playwright.loadPage (lib/browsers/playwright.ts:101:20)
  at Object.webdriver [as default] (lib/next-webdriver.ts:59:5)
  at withBrowser (integration/react-18/test/concurrent.js:17:23)
  at Object.<anonymous> (integration/react-18/test/concurrent.js:50:9)

● Concurrent mode › concurrentFeatures is enabled (prod) › should drain the entire response

page.goto: Timeout 30000ms exceeded.
=========================== logs ===========================
navigating to "http://localhost:34957/suspense/backpressure", waiting until "load"
============================================================

   99 |               .evaluate(`console.log('received ws message ${frame.payload}')`)
  100 |               .catch(() => {})
> 101 |           }
      |            ^
  102 |         })
  103 |       })
  104 |     }

  at Playwright.loadPage (lib/browsers/playwright.ts:101:20)
  at Object.webdriver [as default] (lib/next-webdriver.ts:59:5)
  at withBrowser (integration/react-18/test/concurrent.js:17:23)
  at Object.<anonymous> (integration/react-18/test/concurrent.js:58:9)

test/integration/react-streaming-and-server-components/test/index.test.js

  • CSS dev > should include global styles under concurrentFeatures: true
  • CSS dev > should include global styles with serverComponents: true
  • CSS prod > should include global styles under concurrentFeatures: true
  • CSS prod > should include global styles with serverComponents: true
  • concurrentFeatures - dev > should support React.lazy and dynamic imports
  • concurrentFeatures - dev > should render the correct html
  • concurrentFeatures - dev > should suspense next/link on server side
  • concurrentFeatures - dev > should suspense next/image on server side
  • concurrentFeatures - dev > should support multi-level server component imports
  • concurrentFeatures - dev > should support streaming
  • concurrentFeatures - prod > should support React.lazy and dynamic imports
  • concurrentFeatures - prod > should render the correct html
  • concurrentFeatures - prod > should suspense next/link on server side
  • concurrentFeatures - prod > should suspense next/image on server side
  • concurrentFeatures - prod > should support multi-level server component imports
  • concurrentFeatures - prod > should support streaming
Expand output

● concurrentFeatures - prod › should support React.lazy and dynamic imports

thrown: "Exceeded timeout of 90000 ms for a test.
Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

  147 |       ['/next-api/link', true],
  148 |       ['/routes/[dynamic]', true],
> 149 |     ]) {
      |     ^
  150 |       expect(content.clientInfo).toContainEqual(item)
  151 |     }
  152 |     expect(content.clientInfo).not.toContainEqual([['/404', true]])

  at integration/react-streaming-and-server-components/test/index.test.js:149:5
  at Object.<anonymous> (integration/react-streaming-and-server-components/test/index.test.js:91:1)

● concurrentFeatures - prod › should render the correct html

thrown: "Exceeded timeout of 90000 ms for a test.
Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

  200 |       const res = await fetchViaHTTP(context.appPort, '/')
  201 |       const html = await res.text()
> 202 |
      | ^
  203 |       expect(res.status).toBe(500)
  204 |       expect(html).toContain(
  205 |         'Error: `getInitialProps` in Document component is not supported with `concurrentFeatures` enabled.'

  at runBasicTests (integration/react-streaming-and-server-components/test/index.test.js:202:5)
  at integration/react-streaming-and-server-components/test/index.test.js:153:5
  at Object.<anonymous> (integration/react-streaming-and-server-components/test/index.test.js:91:1)

● concurrentFeatures - prod › should suspense next/link on server side

thrown: "Exceeded timeout of 90000 ms for a test.
Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

  220 |
  221 |     // should have only 1 DOCTYPE
> 222 |     expect(homeHTML).toMatch(/^<!DOCTYPE html><html/)
      |     ^
  223 |
  224 |     // dynamic routes
  225 |     const dynamicRouteHTML1 = await renderViaHTTP(

  at runBasicTests (integration/react-streaming-and-server-components/test/index.test.js:222:5)
  at integration/react-streaming-and-server-components/test/index.test.js:153:5
  at Object.<anonymous> (integration/react-streaming-and-server-components/test/index.test.js:91:1)

● concurrentFeatures - prod › should suspense next/image on server side

thrown: "Exceeded timeout of 90000 ms for a test.
Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

  226 |       context.appPort,
  227 |       '/routes/dynamic1'
> 228 |     )
      |     ^
  229 |     const dynamicRouteHTML2 = await renderViaHTTP(
  230 |       context.appPort,
  231 |       '/routes/dynamic2'

  at runBasicTests (integration/react-streaming-and-server-components/test/index.test.js:228:5)
  at integration/react-streaming-and-server-components/test/index.test.js:153:5
  at Object.<anonymous> (integration/react-streaming-and-server-components/test/index.test.js:91:1)

● concurrentFeatures - prod › should support multi-level server component imports

thrown: "Exceeded timeout of 90000 ms for a test.
Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

  232 |     )
  233 |
> 234 |     const path404HTML = await renderViaHTTP(context.appPort, '/404')
      |     ^
  235 |     const path500HTML = await renderViaHTTP(context.appPort, '/err')
  236 |     const pathNotFoundHTML = await renderViaHTTP(
  237 |       context.appPort,

  at runBasicTests (integration/react-streaming-and-server-components/test/index.test.js:234:5)
  at integration/react-streaming-and-server-components/test/index.test.js:153:5
  at Object.<anonymous> (integration/react-streaming-and-server-components/test/index.test.js:91:1)

● concurrentFeatures - prod › should support streaming

thrown: "Exceeded timeout of 90000 ms for a test.
Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

  237 |       context.appPort,
  238 |       '/this-is-not-found'
> 239 |     )
      |     ^
  240 |
  241 |     expect(homeHTML).toContain('thisistheindexpage.server')
  242 |     expect(homeHTML).toContain('env_var_test')

  at runBasicTests (integration/react-streaming-and-server-components/test/index.test.js:239:5)
  at integration/react-streaming-and-server-components/test/index.test.js:153:5
  at Object.<anonymous> (integration/react-streaming-and-server-components/test/index.test.js:91:1)

● concurrentFeatures - dev › should support React.lazy and dynamic imports

thrown: "Exceeded timeout of 90000 ms for a test.
Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

  166 |   beforeAll(async () => {
  167 |     error500Page.write(page500)
> 168 |     context.appPort = await findPort()
      |     ^
  169 |     context.server = await nextDev(context.appDir, context.appPort)
  170 |   })
  171 |   afterAll(async () => {

  at integration/react-streaming-and-server-components/test/index.test.js:168:5
  at Object.<anonymous> (integration/react-streaming-and-server-components/test/index.test.js:155:1)

● concurrentFeatures - dev › should render the correct html

thrown: "Exceeded timeout of 90000 ms for a test.
Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

  200 |       const res = await fetchViaHTTP(context.appPort, '/')
  201 |       const html = await res.text()
> 202 |
      | ^
  203 |       expect(res.status).toBe(500)
  204 |       expect(html).toContain(
  205 |         'Error: `getInitialProps` in Document component is not supported with `concurrentFeatures` enabled.'

  at runBasicTests (integration/react-streaming-and-server-components/test/index.test.js:202:5)
  at integration/react-streaming-and-server-components/test/index.test.js:175:5
  at Object.<anonymous> (integration/react-streaming-and-server-components/test/index.test.js:155:1)

● concurrentFeatures - dev › should suspense next/link on server side

thrown: "Exceeded timeout of 90000 ms for a test.
Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

  220 |
  221 |     // should have only 1 DOCTYPE
> 222 |     expect(homeHTML).toMatch(/^<!DOCTYPE html><html/)
      |     ^
  223 |
  224 |     // dynamic routes
  225 |     const dynamicRouteHTML1 = await renderViaHTTP(

  at runBasicTests (integration/react-streaming-and-server-components/test/index.test.js:222:5)
  at integration/react-streaming-and-server-components/test/index.test.js:175:5
  at Object.<anonymous> (integration/react-streaming-and-server-components/test/index.test.js:155:1)

● concurrentFeatures - dev › should suspense next/image on server side

thrown: "Exceeded timeout of 90000 ms for a test.
Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

  226 |       context.appPort,
  227 |       '/routes/dynamic1'
> 228 |     )
      |     ^
  229 |     const dynamicRouteHTML2 = await renderViaHTTP(
  230 |       context.appPort,
  231 |       '/routes/dynamic2'

  at runBasicTests (integration/react-streaming-and-server-components/test/index.test.js:228:5)
  at integration/react-streaming-and-server-components/test/index.test.js:175:5
  at Object.<anonymous> (integration/react-streaming-and-server-components/test/index.test.js:155:1)

● concurrentFeatures - dev › should support multi-level server component imports

thrown: "Exceeded timeout of 90000 ms for a test.
Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

  232 |     )
  233 |
> 234 |     const path404HTML = await renderViaHTTP(context.appPort, '/404')
      |     ^
  235 |     const path500HTML = await renderViaHTTP(context.appPort, '/err')
  236 |     const pathNotFoundHTML = await renderViaHTTP(
  237 |       context.appPort,

  at runBasicTests (integration/react-streaming-and-server-components/test/index.test.js:234:5)
  at integration/react-streaming-and-server-components/test/index.test.js:175:5
  at Object.<anonymous> (integration/react-streaming-and-server-components/test/index.test.js:155:1)

● concurrentFeatures - dev › should support streaming

thrown: "Exceeded timeout of 90000 ms for a test.
Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

  237 |       context.appPort,
  238 |       '/this-is-not-found'
> 239 |     )
      |     ^
  240 |
  241 |     expect(homeHTML).toContain('thisistheindexpage.server')
  242 |     expect(homeHTML).toContain('env_var_test')

  at runBasicTests (integration/react-streaming-and-server-components/test/index.test.js:239:5)
  at integration/react-streaming-and-server-components/test/index.test.js:175:5
  at Object.<anonymous> (integration/react-streaming-and-server-components/test/index.test.js:155:1)

● CSS dev › should include global styles under concurrentFeatures: true

page.goto: Timeout 30000ms exceeded.
=========================== logs ===========================
navigating to "http://localhost:37947/global-styles", waiting until "load"
============================================================

   99 |               .evaluate(`console.log('received ws message ${frame.payload}')`)
  100 |               .catch(() => {})
> 101 |           }
      |            ^
  102 |         })
  103 |       })
  104 |     }

  at Playwright.loadPage (lib/browsers/playwright.ts:101:20)
  at Object.webdriver [as default] (lib/next-webdriver.ts:59:5)
  at Object.<anonymous> (integration/react-streaming-and-server-components/test/css.js:14:25)

● CSS dev › should include global styles with serverComponents: true

page.goto: Timeout 30000ms exceeded.
=========================== logs ===========================
navigating to "http://localhost:37947/global-styles-rsc", waiting until "load"
============================================================

   99 |               .evaluate(`console.log('received ws message ${frame.payload}')`)
  100 |               .catch(() => {})
> 101 |           }
      |            ^
  102 |         })
  103 |       })
  104 |     }

  at Playwright.loadPage (lib/browsers/playwright.ts:101:20)
  at Object.webdriver [as default] (lib/next-webdriver.ts:59:5)
  at Object.<anonymous> (integration/react-streaming-and-server-components/test/css.js:19:25)

● CSS prod › should include global styles under concurrentFeatures: true

page.goto: Timeout 30000ms exceeded.
=========================== logs ===========================
navigating to "http://localhost:37247/global-styles", waiting until "load"
============================================================

   99 |               .evaluate(`console.log('received ws message ${frame.payload}')`)
  100 |               .catch(() => {})
> 101 |           }
      |            ^
  102 |         })
  103 |       })
  104 |     }

  at Playwright.loadPage (lib/browsers/playwright.ts:101:20)
  at Object.webdriver [as default] (lib/next-webdriver.ts:59:5)
  at Object.<anonymous> (integration/react-streaming-and-server-components/test/css.js:14:25)

● CSS prod › should include global styles with serverComponents: true

page.goto: Timeout 30000ms exceeded.
=========================== logs ===========================
navigating to "http://localhost:37247/global-styles-rsc", waiting until "load"
============================================================

   99 |               .evaluate(`console.log('received ws message ${frame.payload}')`)
  100 |               .catch(() => {})
> 101 |           }
      |            ^
  102 |         })
  103 |       })
  104 |     }

  at Playwright.loadPage (lib/browsers/playwright.ts:101:20)
  at Object.webdriver [as default] (lib/next-webdriver.ts:59:5)
  at Object.<anonymous> (integration/react-streaming-and-server-components/test/css.js:19:25)

@ijjk
Copy link
Member

ijjk commented Nov 18, 2021

Stats from current PR

Default Build (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js x-clean-up-render-to-web-stream Change
buildDuration 22.1s 22.1s ⚠️ +23ms
buildDurationCached 4.3s 4.4s ⚠️ +19ms
nodeModulesSize 338 MB 338 MB -1.56 kB
Page Load Tests Overall increase ✓
vercel/next.js canary azukaru/next.js x-clean-up-render-to-web-stream Change
/ failed reqs 0 0
/ total time (seconds) 3.561 3.491 -0.07
/ avg req/sec 701.99 716.16 +14.17
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.775 1.629 -0.15
/error-in-render avg req/sec 1408.36 1534.62 +126.26
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js x-clean-up-render-to-web-stream Change
450.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 42.2 kB 42.2 kB
main-HASH.js gzip 28.3 kB 28.3 kB
webpack-HASH.js gzip 1.45 kB 1.45 kB
Overall change 72.2 kB 72.2 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js x-clean-up-render-to-web-stream Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary azukaru/next.js x-clean-up-render-to-web-stream Change
_app-HASH.js gzip 1.37 kB 1.37 kB
_error-HASH.js gzip 194 B 194 B
amp-HASH.js gzip 312 B 312 B
css-HASH.js gzip 327 B 327 B
dynamic-HASH.js gzip 2.38 kB 2.38 kB
head-HASH.js gzip 350 B 350 B
hooks-HASH.js gzip 635 B 635 B
image-HASH.js gzip 4.45 kB 4.45 kB
index-HASH.js gzip 263 B 263 B
link-HASH.js gzip 1.87 kB 1.87 kB
routerDirect..HASH.js gzip 321 B 321 B
script-HASH.js gzip 383 B 383 B
withRouter-HASH.js gzip 318 B 318 B
85e02e95b279..7e3.css gzip 107 B 107 B
Overall change 13.3 kB 13.3 kB
Client Build Manifests
vercel/next.js canary azukaru/next.js x-clean-up-render-to-web-stream Change
_buildManifest.js gzip 460 B 460 B
Overall change 460 B 460 B
Rendered Page Sizes
vercel/next.js canary azukaru/next.js x-clean-up-render-to-web-stream Change
index.html gzip 522 B 522 B
link.html gzip 535 B 535 B
withRouter.html gzip 517 B 517 B
Overall change 1.57 kB 1.57 kB

Default Build with SWC (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js x-clean-up-render-to-web-stream Change
buildDuration 23.6s 23.8s ⚠️ +220ms
buildDurationCached 4.3s 4.4s ⚠️ +47ms
nodeModulesSize 338 MB 338 MB -1.56 kB
Page Load Tests Overall increase ✓
vercel/next.js canary azukaru/next.js x-clean-up-render-to-web-stream Change
/ failed reqs 0 0
/ total time (seconds) 3.814 3.667 -0.15
/ avg req/sec 655.41 681.78 +26.37
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.808 1.691 -0.12
/error-in-render avg req/sec 1382.57 1478.74 +96.17
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js x-clean-up-render-to-web-stream Change
450.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 42.3 kB 42.3 kB
main-HASH.js gzip 28.6 kB 28.6 kB
webpack-HASH.js gzip 1.44 kB 1.44 kB
Overall change 72.5 kB 72.5 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js x-clean-up-render-to-web-stream Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary azukaru/next.js x-clean-up-render-to-web-stream Change
_app-HASH.js gzip 1.35 kB 1.35 kB
_error-HASH.js gzip 180 B 180 B
amp-HASH.js gzip 305 B 305 B
css-HASH.js gzip 321 B 321 B
dynamic-HASH.js gzip 2.38 kB 2.38 kB
head-HASH.js gzip 342 B 342 B
hooks-HASH.js gzip 622 B 622 B
image-HASH.js gzip 4.47 kB 4.47 kB
index-HASH.js gzip 256 B 256 B
link-HASH.js gzip 1.91 kB 1.91 kB
routerDirect..HASH.js gzip 314 B 314 B
script-HASH.js gzip 375 B 375 B
withRouter-HASH.js gzip 309 B 309 B
85e02e95b279..7e3.css gzip 107 B 107 B
Overall change 13.2 kB 13.2 kB
Client Build Manifests
vercel/next.js canary azukaru/next.js x-clean-up-render-to-web-stream Change
_buildManifest.js gzip 459 B 459 B
Overall change 459 B 459 B
Rendered Page Sizes
vercel/next.js canary azukaru/next.js x-clean-up-render-to-web-stream Change
index.html gzip 523 B 523 B
link.html gzip 536 B 536 B
withRouter.html gzip 517 B 517 B
Overall change 1.58 kB 1.58 kB
Commit: 1fced78

@devknoll devknoll marked this pull request as ready for review November 18, 2021 19:31
@kodiakhq kodiakhq bot merged commit 9f7c774 into vercel:canary Nov 18, 2021
@vercel vercel locked as resolved and limited conversation to collaborators Jan 27, 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.

2 participants