@@ -27,6 +27,7 @@ export type InitiatorType =
2727
2828type NetworkRecordOptions = {
2929 initiatorType ?: InitiatorType [ ] ;
30+ ignoreRequestFn ?: ( data : NetworkRequest ) => boolean ;
3031 recordHeaders ?:
3132 | boolean
3233 | StringifyOptions
@@ -68,6 +69,7 @@ const defaultNetworkOptions: NetworkRecordOptions = {
6869 'video' ,
6970 'xmlhttprequest' ,
7071 ] ,
72+ ignoreEventFn : ( ) => false ,
7173 recordHeaders : false ,
7274 recordBody : false ,
7375 recordInitialEvents : false ,
@@ -91,14 +93,10 @@ export type NetworkData = {
9193
9294type networkCallback = ( data : NetworkData ) => void ;
9395
94- type NetworkObserverOptions = NetworkRecordOptions & {
95- initiatorType : InitiatorType [ ] ;
96- } ;
97-
9896function initPerformanceObserver (
9997 cb : networkCallback ,
10098 win : IWindow ,
101- options : NetworkObserverOptions ,
99+ options : Required < NetworkRecordOptions > ,
102100) {
103101 if ( ! ( 'performance' in win ) ) {
104102 return ( ) => {
@@ -151,7 +149,7 @@ function initPerformanceObserver(
151149function initXhrObserver (
152150 cb : networkCallback ,
153151 win : IWindow ,
154- options : NetworkObserverOptions ,
152+ options : Required < NetworkRecordOptions > ,
155153) : listenerHandler {
156154 if ( ! options . initiatorType . includes ( 'xmlhttprequest' ) ) {
157155 return ( ) => {
@@ -166,7 +164,7 @@ function initXhrObserver(
166164function initFetchObserver (
167165 cb : networkCallback ,
168166 win : IWindow ,
169- options : NetworkObserverOptions ,
167+ options : Required < NetworkRecordOptions > ,
170168) : listenerHandler {
171169 if ( ! options . initiatorType . includes ( 'fetch' ) ) {
172170 return ( ) => {
@@ -283,15 +281,19 @@ function initFetchObserver(
283281}
284282
285283function initNetworkObserver (
286- cb : networkCallback ,
284+ callback : networkCallback ,
287285 win : IWindow , // top window or in an iframe
288286 options : NetworkRecordOptions ,
289287) : listenerHandler {
290288 const networkOptions = ( options
291289 ? Object . assign ( { } , defaultNetworkOptions , options )
292- : defaultNetworkOptions ) as {
293- initiatorType : InitiatorType [ ] ;
294- recordInitialEvents : boolean ;
290+ : defaultNetworkOptions ) as Required < NetworkRecordOptions > ;
291+
292+ const cb : networkCallback = ( data ) => {
293+ const requests = data . requests . filter ( ( request ) =>
294+ networkOptions . ignoreRequestFn ( request ) ,
295+ ) ;
296+ callback ( { ...data , requests } ) ;
295297 } ;
296298
297299 const performanceObserver = initPerformanceObserver ( cb , win , networkOptions ) ;
0 commit comments