Skip to content

Commit cb005be

Browse files
committed
ref: Refactor code
1 parent 50d0ff1 commit cb005be

File tree

1 file changed

+42
-34
lines changed

1 file changed

+42
-34
lines changed

packages/browser/src/integrations/breadcrumbs.ts

+42-34
Original file line numberDiff line numberDiff line change
@@ -313,39 +313,47 @@ export class Breadcrumbs implements Integration {
313313
function addSentryBreadcrumb(serializedData: string): void {
314314
// There's always something that can go wrong with deserialization...
315315
try {
316-
try {
317-
const event = JSON.parse(serializedData);
318-
getCurrentHub().addBreadcrumb(
319-
{
320-
category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,
321-
event_id: event.event_id,
322-
level: event.level || Severity.fromString('error'),
323-
message: getEventDescription(event),
324-
},
325-
{
326-
event,
327-
},
328-
);
329-
} catch (_oO) {
330-
// We are dealing with an envelope here
331-
// For simplicity we only deal with transactions
332-
const envelopeLines = serializedData.split('\n');
333-
const envelopeHeader = JSON.parse(envelopeLines[0]);
334-
const itemHeader = JSON.parse(envelopeLines[1]);
335-
const item = JSON.parse(envelopeLines[2]);
336-
getCurrentHub().addBreadcrumb(
337-
{
338-
category: `sentry.${itemHeader.type}`,
339-
event_id: envelopeHeader.event_id,
340-
level: item.level,
341-
message: getEventDescription(item),
342-
},
343-
{
344-
item,
345-
},
346-
);
347-
}
348-
} catch (_oO) {
349-
logger.error('Error while adding sentry type breadcrumb');
316+
const event = JSON.parse(serializedData);
317+
getCurrentHub().addBreadcrumb(
318+
{
319+
category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,
320+
event_id: event.event_id,
321+
level: event.level || Severity.fromString('error'),
322+
message: getEventDescription(event),
323+
},
324+
{
325+
event,
326+
},
327+
);
328+
} catch (error) {
329+
logger.error('Error while adding sentry type breadcrumb will try envelope', error);
330+
addSentryBreadcrumbWithEnvelope(serializedData);
331+
}
332+
}
333+
334+
/**
335+
* Does the same as {@link addSentryBreadcrumb} but works with envelope
336+
*/
337+
function addSentryBreadcrumbWithEnvelope(envelope: string): void {
338+
try {
339+
// We are dealing with an envelope here
340+
// For simplicity we only deal with transactions
341+
const envelopeLines = envelope.split('\n');
342+
const envelopeHeader = JSON.parse(envelopeLines[0]);
343+
const itemHeader = JSON.parse(envelopeLines[1]);
344+
const item = JSON.parse(envelopeLines[2]);
345+
getCurrentHub().addBreadcrumb(
346+
{
347+
category: `sentry.${itemHeader.type}`,
348+
event_id: envelopeHeader.event_id,
349+
level: item.level,
350+
message: getEventDescription(item),
351+
},
352+
{
353+
item,
354+
},
355+
);
356+
} catch (error) {
357+
logger.error('Error while adding sentry type breadcrumb', error);
350358
}
351359
}

0 commit comments

Comments
 (0)