-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
feat(tanstackstart-react): Auto-instrument global middleware #18844
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
base: develop
Are you sure you want to change the base?
Conversation
This reverts commit 286f624.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
| } | ||
| return match; | ||
| }, | ||
| ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regex transformation modifies strings and comments containing pattern
Low Severity
The regex /(requestMiddleware|functionMiddleware)\s*:\s*\[([^\]]*)\]/g matches patterns anywhere in the source file without respecting JavaScript syntax boundaries. This means string literals or comments containing patterns like requestMiddleware: [foo] would also be transformed. For example, a comment documenting config format or a string used for code generation could be unintentionally modified to include wrapMiddlewaresWithSentry({ foo }), causing misleading documentation or broken string content.
Depends on (i.e. do not review until the following is merged): vite plugin PR
This PR adds automatic instrumentation for global request and function middleware in TanStack Start applications.
Overview
The sentryTanstackStart Vite plugin now automatically wraps requestMiddleware and functionMiddleware arrays in
createStart()with Sentry instrumentation. This is done via a source code transformation during the build that converts:into:
Usage
Auto-instrumentation is enabled by default. To explicitly disable it:
This should give users flexibility in case things go wrong.
Implementation Details
createStart()wrapMiddlewaresWithSentryTesting
sentryTanstackStartpluginautoInstrumentMiddlewareFollow-ups
Future PRs will add support for non-global request/function middleware. This PR focuses on global middleware to make it a bit easier to review. I also want to give users a bit more control by allowing them to disable auto-instrumentation on a file-level, but this doesn't make sense yet since the current implementation only patches a single file anyways.
Closes #18845