Skip to content

Commit df7a730

Browse files
committed
Added support for beforeBreadcrumb hook on iOS
1 parent b2d470d commit df7a730

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

src/wrapper.ios.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ export namespace NATIVE {
331331
return false;
332332
}
333333
sentryOptions = options;
334-
const {tracesSampleRate, tracesSampler, beforeSend, ...toPassOptions} = options;
334+
const {tracesSampleRate, tracesSampler, beforeSend, beforeBreadcrumb, ...toPassOptions} = options;
335335

336336
Object.keys(toPassOptions).forEach((k) => {
337337
const value = toPassOptions[k];
@@ -366,6 +366,23 @@ export namespace NATIVE {
366366
setEventOriginTag(event);
367367
return event;
368368
};
369+
nSentryOptions.beforeBreadcrumb = (breadcrumb) => {
370+
if (beforeBreadcrumb) {
371+
const deserialized = dictToJSON(breadcrumb.serialize());
372+
const processed = beforeBreadcrumb(deserialized, null);
373+
const serialized = dataSerialize(processed);
374+
const levels = ['log', 'debug', 'info', 'warning', 'error', 'fatal'];
375+
376+
if (processed) {
377+
breadcrumb.level = Math.max(levels.indexOf(processed['level']), 0);
378+
['category', 'data', 'message', 'type']
379+
.forEach(key => breadcrumb[key] = serialized.objectForKey(key));
380+
} else {
381+
return null;
382+
}
383+
}
384+
return breadcrumb;
385+
}
369386
if (toPassOptions.hasOwnProperty('enableNativeCrashHandling')) {
370387
if (!toPassOptions.enableNativeCrashHandling) {
371388
const integrations = nSentryOptions.integrations.mutableCopy();

0 commit comments

Comments
 (0)