Skip to content

Commit

Permalink
[v7] Capture sentry breadcrumb in captureEvent call
Browse files Browse the repository at this point in the history
  • Loading branch information
kamilogorek committed Mar 23, 2021
1 parent cf425c4 commit fe17ad1
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 16 deletions.
16 changes: 0 additions & 16 deletions packages/browser/src/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,20 +72,4 @@ export class BrowserClient extends BaseClient<BrowserOptions> {
protected _eventFromMessage(message: string, captureContext: CaptureContext): PromiseLike<SentryEvent> {
return eventFromMessage(this.options, message, captureContext);
}

// TODO: Restore this functionality somewhere else, it definitely shouldn't be here.
// protected _sendEvent(event: SentryEvent): void {
// this.getScope()?.addBreadcrumb(
// {
// category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,
// event_id: event.event_id,
// level: event.level,
// message: getEventDescription(event),
// },
// {
// event,
// },
// );
// super._sendEvent(event);
// }
}
15 changes: 15 additions & 0 deletions packages/core/src/baseclient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import {
} from '@sentry/types';
import {
dateTimestampInSeconds,
getEventDescription,
isPrimitive,
isThenable,
logger,
Expand Down Expand Up @@ -121,6 +122,7 @@ export abstract class BaseClient<O extends OptionsV7> implements ClientLike<O> {
* @inheritDoc
*/
public captureException(exception: unknown, captureContext: CaptureContext = {}): string | undefined {
// TODO: This is broken. a) we dont pass event_id in hint anymore, b) its sync value assigned in async callback
let eventId = captureContext.hint?.event_id;

this._process(
Expand Down Expand Up @@ -465,6 +467,19 @@ export abstract class BaseClient<O extends OptionsV7> implements ClientLike<O> {
protected _captureEvent(event: SentryEvent, captureContext: CaptureContext): PromiseLike<string | undefined> {
return this._processEvent(event, captureContext).then(
finalEvent => {
// TODO: Make it configurable or move to @sentry/integration-browser-breadcrumbs
const eventType = finalEvent.type === 'transaction' ? 'transaction' : 'event';
this.getScope().addBreadcrumb(
{
category: `sentry.${eventType}`,
event_id: finalEvent.event_id,
level: finalEvent.level,
message: getEventDescription(finalEvent),
},
{
event: finalEvent,
},
);
return finalEvent.event_id;
},
reason => {
Expand Down

0 comments on commit fe17ad1

Please sign in to comment.