diff --git a/.changeset/blue-trees-repeat.md b/.changeset/blue-trees-repeat.md new file mode 100644 index 00000000..5392f7ae --- /dev/null +++ b/.changeset/blue-trees-repeat.md @@ -0,0 +1,5 @@ +--- +'@spotlightjs/overlay': minor +--- + +feat: Allow to directly add sentry envelopes via trigger diff --git a/packages/overlay/src/integrations/sentry/index.ts b/packages/overlay/src/integrations/sentry/index.ts index 69413e2c..c57a645e 100644 --- a/packages/overlay/src/integrations/sentry/index.ts +++ b/packages/overlay/src/integrations/sentry/index.ts @@ -49,8 +49,19 @@ export default function sentryIntegration(options: SentryIntegrationOptions = {} on('sentry:showError', onRenderError as EventListener); + const onAddEnvelope = (e: CustomEvent) => { + if (!e.detail.envelope) return; + processEnvelope({ + contentType: 'application/x-sentry-envelope', + data: e.detail.envelope, + }); + }; + + on('sentry:addEnvelope', onAddEnvelope as EventListener); + return () => { off('sentry:showError', onRenderError as EventListener); + off('sentry:addEnvelope', onAddEnvelope as EventListener); }; }, diff --git a/packages/website/src/content/docs/reference/sentry.mdx b/packages/website/src/content/docs/reference/sentry.mdx index 0b97f86f..cd3e9087 100644 --- a/packages/website/src/content/docs/reference/sentry.mdx +++ b/packages/website/src/content/docs/reference/sentry.mdx @@ -16,10 +16,18 @@ init({ Additionally it includes an event to trigger synchronously rendering an error: ```js -import { trigger } as Spotlight from '@spotlightjs/spotlight'; +import { trigger } from '@spotlightjs/spotlight'; trigger("sentry:showError", { eventId: string, event?: Event, }); ``` + +You can also directly add envelopes to the Sentry integration: + +```js +import { trigger } from '@spotlightjs/spotlight'; + +trigger("sentry:addEnvelope", sentryEnvelope); +``` \ No newline at end of file