Skip to content

ref(cloudflare): Ensure wrapRequestHandler stays free of node specifcs - #22894

Open
JPeer264 wants to merge 1 commit into
jp/prepare-nodejs-compatfrom
jp/pure-request
Open

ref(cloudflare): Ensure wrapRequestHandler stays free of node specifcs#22894
JPeer264 wants to merge 1 commit into
jp/prepare-nodejs-compatfrom
jp/pure-request

Conversation

@JPeer264

@JPeer264 JPeer264 commented Jul 31, 2026

Copy link
Copy Markdown
Member

This prepares for the next PRs, where we extend the default integrations with integrations that include node specific imports, such as the diagnostics channels e.g. vercelAIIntegration.

The main refactors were

  • There is now a wrapRequestHandlerWithInit, that holds only default integrations and imports, which are "pure" and don't have any node libraries, in order to support the Oxygen runtime (a new test has a wrangler.jsonc without any compatibility flags, that mirrors what Oxygen does in their environment). So this new function only adds a third parameter with the init.
  • There is also now a ./baseSdk, which is just a refactor from the previous ./sdk, but without the extra imports
    • The ./sdk can now be extended with diagnostics channels, such as vercelAIIntegration or other server-utils imports.
  • To ensure the /request entrypoint stays "pure", there are 2 tests to ensure that
    1. Just a unit test that checks for node: imports
    2. A integration test that runs with wrangler dev, which doesn't have tree-shaking baked in. Perfect for testing if there is a node: import

@JPeer264 JPeer264 self-assigned this Jul 31, 2026
@github-actions

github-actions Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

⚠️ Warning: Base artifact is not the latest one, because the latest workflow run is not done yet. This may lead to incorrect results. Try to re-run all tests to get up to date results.

Path Size % Change Change
@sentry/browser 29.82 kB - -
@sentry/browser - with treeshaking flags 28.02 kB - -
@sentry/browser (incl. Tracing) 47.08 kB - -
@sentry/browser (incl. Tracing + Span Streaming) 47.09 kB - -
@sentry/browser (incl. Tracing, Profiling) 51.82 kB - -
@sentry/browser (incl. Tracing, Replay) 86.39 kB - -
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 75.83 kB - -
@sentry/browser (incl. Tracing, Replay with Canvas) 91.11 kB - -
@sentry/browser (incl. Tracing, Replay, Feedback) 103.76 kB - -
@sentry/browser (incl. Feedback) 47.13 kB - -
@sentry/browser (incl. sendFeedback) 34.66 kB - -
@sentry/browser (incl. FeedbackAsync) 39.76 kB - -
@sentry/browser (incl. Metrics) 30.89 kB - -
@sentry/browser (incl. Logs) 31.12 kB - -
@sentry/browser (incl. Metrics & Logs) 31.8 kB - -
@sentry/react 31.6 kB - -
@sentry/react (incl. Tracing) 49.33 kB - -
@sentry/vue 34.74 kB - -
@sentry/vue (incl. Tracing) 49.05 kB - -
@sentry/svelte 29.85 kB - -
CDN Bundle 31.87 kB - -
CDN Bundle (incl. Tracing) 47.45 kB - -
CDN Bundle (incl. Logs, Metrics) 33.42 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) 48.82 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) 72.78 kB - -
CDN Bundle (incl. Tracing, Replay) 85.08 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) 86.38 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) 90.85 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) 92.16 kB - -
CDN Bundle - uncompressed 95.04 kB - -
CDN Bundle (incl. Tracing) - uncompressed 142.27 kB - -
CDN Bundle (incl. Logs, Metrics) - uncompressed 99.75 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed 146.25 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed 224.51 kB - -
CDN Bundle (incl. Tracing, Replay) - uncompressed 261.52 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed 265.49 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 275.23 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed 279.18 kB - -
@sentry/nextjs (client) 51.92 kB - -
@sentry/sveltekit (client) 47.51 kB - -
@sentry/core/server 79.6 kB - -
@sentry/core/browser 51.7 kB - -
@sentry/node 121.35 kB - -
@sentry/node/import (ESM hook with diagnostics-channel injection) 166 B - -
@sentry/node - without tracing 84.88 kB -0.01% -1 B 🔽
@sentry/aws-serverless 93.16 kB +0.01% +1 B 🔺
@sentry/cloudflare (withSentry) - minified 198.36 kB +0.08% +158 B 🔺
@sentry/cloudflare (withSentry) 488.03 kB +0.13% +599 B 🔺

View base workflow run

@JPeer264
JPeer264 force-pushed the jp/pure-request branch 2 times, most recently from ca0a1dc to 13a8f82 Compare July 31, 2026 08:12
@JPeer264
JPeer264 marked this pull request as ready for review July 31, 2026 08:17
@JPeer264
JPeer264 requested review from a team as code owners July 31, 2026 08:17
@JPeer264
JPeer264 requested review from isaacs, mydea, nicohrubec and s1gr1d and removed request for a team July 31, 2026 08:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant