@@ -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