mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
34 lines
1.0 KiB
TypeScript
34 lines
1.0 KiB
TypeScript
import rawStacktraceContent from 'sentry/components/events/interfaces/crashContent/stackTrace/rawContent';
|
|
import type {Event} from 'sentry/types/event';
|
|
|
|
export default function getStacktraceBody(event: Event) {
|
|
if (!event || !event.entries) {
|
|
return [];
|
|
}
|
|
|
|
// TODO(billyvg): This only accounts for the first exception, will need navigation to be able to
|
|
// diff multiple exceptions
|
|
//
|
|
// See: https://github.com/getsentry/sentry/issues/6055
|
|
const exc = event.entries.find(({type}) => type === 'exception');
|
|
|
|
if (!exc) {
|
|
// Look for a message if not an exception
|
|
const msg = event.entries.find(({type}) => type === 'message');
|
|
if (!msg) {
|
|
return [];
|
|
}
|
|
return msg?.data?.formatted && [msg.data.formatted];
|
|
}
|
|
|
|
if (!exc.data) {
|
|
return [];
|
|
}
|
|
|
|
// TODO(ts): This should be verified when EntryData has the correct type
|
|
return exc.data.values
|
|
.filter(value => !!value.stacktrace)
|
|
.map(value => rawStacktraceContent(value.stacktrace, event.platform, value))
|
|
.reduce((acc, value) => acc.concat(value), []);
|
|
}
|