Skip to content

web runtime: add AbortController & AbortSignal#32089

Merged
kodiakhq[bot] merged 12 commits intovercel:canaryfrom
Kikobeats:abort-controller-web-runtime-2
Dec 21, 2021
Merged

web runtime: add AbortController & AbortSignal#32089
kodiakhq[bot] merged 12 commits intovercel:canaryfrom
Kikobeats:abort-controller-web-runtime-2

Conversation

@Kikobeats
Copy link
Copy Markdown
Contributor

@Kikobeats Kikobeats commented Dec 3, 2021

It adds AbortController and AbortSignal Web runtimes APIs to be used by the user at Edge Functions.

For doing that it delegates into abort-controller dependency that has been frozen to prevent any modification.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@Kikobeats Kikobeats requested a review from leerob as a code owner December 3, 2021 16:28
@ijjk

This comment has been minimized.

styfle
styfle previously approved these changes Dec 8, 2021
Copy link
Copy Markdown
Contributor

@styfle styfle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@balazsorban44
Copy link
Copy Markdown
Contributor

Should this be updated here?: https://nextjs.org/docs/api-reference/edge-runtime#unsupported-apis

@Kikobeats
Copy link
Copy Markdown
Contributor Author

@balazsorban44 yes, good catch!

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk
Copy link
Copy Markdown
Member

ijjk commented Dec 10, 2021

Failing test suites

Commit: 8800906

test/integration/app-document-add-hmr/test/index.test.js

  • _app/_document add HMR > should HMR when _document is added
Expand output

● _app/_document add HMR › should HMR when _document is added

expect(received).toContain(expected) // indexOf

Expected substring: "index page"
Received string:    "<head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width\"><meta name=\"next-head-count\" content=\"2\"><noscript data-n-css=\"\"></noscript><script defer=\"\" nomodule=\"\" src=\"/_next/static/chunks/polyfills.js?ts=1639132919027\"></script><script src=\"/_next/static/chunks/fallback/webpack.js?ts=1639132919027\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/main.js?ts=1639132919027\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/pages/_app.js?ts=1639132919027\" defer=\"\"></script><script src=\"/_next/static/chunks/fallback/pages/_error.js?ts=1639132919027\" defer=\"\"></script><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body style=\"overflow: hidden;\"><div id=\"__next\" data-reactroot=\"\"></div><script src=\"/_next/static/chunks/fallback/react-refresh.js?ts=1639132919027\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"ModuleBuildError\",\"message\":\"Module build failed (from ../../../packages/next/dist/build/webpack/loaders/next-swc-loader.js):\\nError: Failed to read source code from /home/runner/work/next.js/next.js/test/integration/app-document-add-hmr/pages/_app.js\\n\\nCaused by:\\n    No such file or directory (os error 2)\",\"stack\":\"ModuleBuildError: Module build failed (from ../../../packages/next/dist/build/webpack/loaders/next-swc-loader.js):\\nError: Failed to read source code from /home/runner/work/next.js/next.js/test/integration/app-document-add-hmr/pages/_app.js\\n\\nCaused by:\\n    No such file or directory (os error 2)\\n    at processResult (/home/runner/work/next.js/next.js/packages/next/dist/compiled/webpack/bundle5.js:54452:19)\\n    at /home/runner/work/next.js/next.js/packages/next/dist/compiled/webpack/bundle5.js:54554:5\\n    at /home/runner/work/next.js/next.js/packages/next/dist/compiled/webpack/bundle5.js:140425:11\\n    at /home/runner/work/next.js/next.js/packages/next/dist/compiled/webpack/bundle5.js:140221:20\\n    at context.callback (/home/runner/work/next.js/next.js/packages/next/dist/compiled/webpack/bundle5.js:140150:13)\"},\"gip\":true,\"scriptLoader\":[]}</script><div id=\"__next-build-watcher\" style=\"position: fixed; bottom: 10px; right: 20px; width: 0px; height: 0px; z-index: 99999;\"></div><next-route-announcer><p aria-live=\"assertive\" id=\"__next-route-announcer__\" role=\"alert\" style=\"border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px; white-space: nowrap; overflow-wrap: normal;\"></p></next-route-announcer><nextjs-portal></nextjs-portal></body>"

  54 |       await fs.remove(appPage)
  55 |     }
> 56 |   })
     |     ^
  57 |
  58 |   it('should HMR when _document is added', async () => {
  59 |     let indexContent = await fs.readFile(indexPage)

  at Object.<anonymous> (integration/app-document-add-hmr/test/index.test.js:56:27)

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk
Copy link
Copy Markdown
Member

ijjk commented Dec 21, 2021

Stats from current PR

Default Build (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary Kikobeats/next.js abort-controller-web-runtime-2 Change
buildDuration 17.7s 17.7s -53ms
buildDurationCached 3.4s 3.5s ⚠️ +47ms
nodeModulesSize 348 MB 348 MB ⚠️ +11.2 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary Kikobeats/next.js abort-controller-web-runtime-2 Change
/ failed reqs 0 0
/ total time (seconds) 3.025 2.999 -0.03
/ avg req/sec 826.32 833.67 +7.35
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.41 1.425 ⚠️ +0.02
/error-in-render avg req/sec 1773.18 1754.46 ⚠️ -18.72
Client Bundles (main, webpack, commons)
vercel/next.js canary Kikobeats/next.js abort-controller-web-runtime-2 Change
450.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 42.2 kB 42.2 kB
main-HASH.js gzip 30.3 kB 30.3 kB
webpack-HASH.js gzip 1.45 kB 1.45 kB
Overall change 74.1 kB 74.1 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary Kikobeats/next.js abort-controller-web-runtime-2 Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Kikobeats/next.js abort-controller-web-runtime-2 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 326 B 326 B
dynamic-HASH.js gzip 2.37 kB 2.37 kB
head-HASH.js gzip 350 B 350 B
hooks-HASH.js gzip 919 B 919 B
image-HASH.js gzip 4.73 kB 4.73 kB
index-HASH.js gzip 263 B 263 B
link-HASH.js gzip 2.13 kB 2.13 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 14.1 kB 14.1 kB
Client Build Manifests
vercel/next.js canary Kikobeats/next.js abort-controller-web-runtime-2 Change
_buildManifest.js gzip 459 B 459 B
Overall change 459 B 459 B
Rendered Page Sizes
vercel/next.js canary Kikobeats/next.js abort-controller-web-runtime-2 Change
index.html gzip 533 B 533 B
link.html gzip 547 B 547 B
withRouter.html gzip 528 B 528 B
Overall change 1.61 kB 1.61 kB

Default Build with SWC (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary Kikobeats/next.js abort-controller-web-runtime-2 Change
buildDuration 19s 19.2s ⚠️ +129ms
buildDurationCached 3.5s 3.4s -36ms
nodeModulesSize 348 MB 348 MB ⚠️ +11.2 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary Kikobeats/next.js abort-controller-web-runtime-2 Change
/ failed reqs 0 0
/ total time (seconds) 2.986 3.015 ⚠️ +0.03
/ avg req/sec 837.35 829.05 ⚠️ -8.3
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.376 1.379 0
/error-in-render avg req/sec 1816.63 1813.13 ⚠️ -3.5
Client Bundles (main, webpack, commons)
vercel/next.js canary Kikobeats/next.js abort-controller-web-runtime-2 Change
450.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 42.3 kB 42.3 kB
main-HASH.js gzip 30.4 kB 30.4 kB
webpack-HASH.js gzip 1.44 kB 1.44 kB
Overall change 74.3 kB 74.3 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary Kikobeats/next.js abort-controller-web-runtime-2 Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Kikobeats/next.js abort-controller-web-runtime-2 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.36 kB 2.36 kB
head-HASH.js gzip 342 B 342 B
hooks-HASH.js gzip 906 B 906 B
image-HASH.js gzip 4.75 kB 4.75 kB
index-HASH.js gzip 256 B 256 B
link-HASH.js gzip 2.19 kB 2.19 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 14.1 kB 14.1 kB
Client Build Manifests
vercel/next.js canary Kikobeats/next.js abort-controller-web-runtime-2 Change
_buildManifest.js gzip 458 B 458 B
Overall change 458 B 458 B
Rendered Page Sizes
vercel/next.js canary Kikobeats/next.js abort-controller-web-runtime-2 Change
index.html gzip 530 B 530 B
link.html gzip 545 B 545 B
withRouter.html gzip 525 B 525 B
Overall change 1.6 kB 1.6 kB
Commit: 216dcab

@kodiakhq kodiakhq Bot merged commit 0eba5b2 into vercel:canary Dec 21, 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.

6 participants