-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
feat(v8/solidstart): Add withSentry
wrapper for SolidStart config
#15135
Conversation
* | ||
* @deprecated This plugin will be removed in v9. Instead, use `withSentry` to wrap your SolidStart config. Example: | ||
* ``` | ||
* export default defineConfig( | ||
* withSentry( | ||
* { | ||
* // SolidStart config... | ||
* }, | ||
* { | ||
* // Sentry config | ||
* org: process.env.SENTRY_ORG, | ||
* project: process.env.SENTRY_PROJECT, | ||
* authToken: process.env.SENTRY_AUTH_TOKEN, | ||
* }, | ||
* ), | ||
* ); | ||
* ``` |
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.
Everything in this PR is just a backport of the PRs merged into the v9 branch.
Those JSDoc lines are new. And I kept the E2E tests solidstart
and solidstart-spa
as they were before, to still test that the old way of setting up the SDK (with the Vite plugin) works.
withSentry
wrapper for SolidStart configwithSentry
wrapper for SolidStart config
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.
LGTM thanks!
…erSentry` (#14862) This PR adds a `withSentry` wrapper for SolidStart's config to build and place `instrument.server.ts` alongside the server build output so that it doesn't have to be placed in `/public` anymore to be discoverable. The setup is changed to be aligned with Nuxt. First, the `instrument.server.ts` file is added to the build output (the sentry release injection file needs to be copied as well - this is not ideal at the moment as there **could** be other imports as well, but it's okay for now) Then, there are two options to set up the SDK: 1. Users provide an `--import` CLI flag to their start command like this: ```node --import ./.output/server/instrument.server.mjs .output/server/index.mjs``` 2. Users can add `autoInjectServerSentry: 'top-level-import'` and the Sentry config will be imported at the top of the server entry ```typescript // app.config.ts import { defineConfig } from '@solidjs/start/config'; import { withSentry } from '@sentry/solidstart'; export default defineConfig(withSentry( { /* ... */ }, { autoInjectServerSentry: 'top-level-import' // optional }) ); ``` --- builds on top of the idea in this PR: #13784 --------- Co-authored-by: Andrei Borza <[email protected]>
…import` (#14863)⚠️ THIS PR IS BASED ON #14862 Adds the option to dynamically import the server config file. ```typescript // app.config.ts import { defineConfig } from '@solidjs/start/config'; import { sentrySolidStartVite, withSentry } from '@sentry/solidstart'; export default defineConfig(withSentry( { /* ... */ }, { autoInjectServerSentry: 'experimental_dynamic-import' }) ); ``` --------- Co-authored-by: Andrei Borza <[email protected]> (cherry picked from commit 38ff6eb)
6d4eda9
to
c611265
Compare
❌ 1 Tests Failed:
View the top 1 failed tests by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
Backport of #14862 and #14863