diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index b971aa8b43a3..e4071c827daf 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -101,7 +101,7 @@ export { functionToStringIntegration } from './integrations/functiontostring'; export { inboundFiltersIntegration } from './integrations/eventFilters'; export { eventFiltersIntegration } from './integrations/eventFilters'; export { linkedErrorsIntegration } from './integrations/linkederrors'; -export { moduleMetadataIntegration } from './integrations/metadata'; +export { moduleMetadataIntegration } from './integrations/moduleMetadata'; export { requestDataIntegration } from './integrations/requestdata'; export { captureConsoleIntegration } from './integrations/captureconsole'; export { dedupeIntegration } from './integrations/dedupe'; diff --git a/packages/core/src/integrations/metadata.ts b/packages/core/src/integrations/moduleMetadata.ts similarity index 100% rename from packages/core/src/integrations/metadata.ts rename to packages/core/src/integrations/moduleMetadata.ts diff --git a/packages/core/src/integrations/third-party-errors-filter.ts b/packages/core/src/integrations/third-party-errors-filter.ts index 1a0628359f5b..cf03db31643d 100644 --- a/packages/core/src/integrations/third-party-errors-filter.ts +++ b/packages/core/src/integrations/third-party-errors-filter.ts @@ -42,7 +42,6 @@ export const thirdPartyErrorFilterIntegration = defineIntegration((options: Opti name: 'ThirdPartyErrorsFilter', setup(client) { // We need to strip metadata from stack frames before sending them to Sentry since these are client side only. - // TODO(lforst): Move this cleanup logic into a more central place in the SDK. client.on('beforeEnvelope', envelope => { forEachEnvelopeItem(envelope, (item, type) => { if (type === 'event') { diff --git a/packages/core/src/metadata.ts b/packages/core/src/metadata.ts index 190db6dd55fa..1ee93e8dcd5a 100644 --- a/packages/core/src/metadata.ts +++ b/packages/core/src/metadata.ts @@ -53,46 +53,28 @@ export function getMetadataForUrl(parser: StackParser, filename: string): any | * Metadata is injected by the Sentry bundler plugins using the `_experiments.moduleMetadata` config option. */ export function addMetadataToStackFrames(parser: StackParser, event: Event): void { - try { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - event.exception!.values!.forEach(exception => { - if (!exception.stacktrace) { + event.exception?.values?.forEach(exception => { + exception.stacktrace?.frames?.forEach(frame => { + if (!frame.filename || frame.module_metadata) { return; } - for (const frame of exception.stacktrace.frames || []) { - if (!frame.filename || frame.module_metadata) { - continue; - } + const metadata = getMetadataForUrl(parser, frame.filename); - const metadata = getMetadataForUrl(parser, frame.filename); - - if (metadata) { - frame.module_metadata = metadata; - } + if (metadata) { + frame.module_metadata = metadata; } }); - } catch { - // To save bundle size we're just try catching here instead of checking for the existence of all the different objects. - } + }); } /** * Strips metadata from stack frames. */ export function stripMetadataFromStackFrames(event: Event): void { - try { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - event.exception!.values!.forEach(exception => { - if (!exception.stacktrace) { - return; - } - - for (const frame of exception.stacktrace.frames || []) { - delete frame.module_metadata; - } + event.exception?.values?.forEach(exception => { + exception.stacktrace?.frames?.forEach(frame => { + delete frame.module_metadata; }); - } catch { - // To save bundle size we're just try catching here instead of checking for the existence of all the different objects. - } + }); }