openreplay/tracker/tracker-reactnative/src/Network/index.ts

32 lines
866 B
TypeScript

import FetchProxy from './fetchProxy';
import XHRProxy from './xhrProxy';
import type { RequestResponseData } from './types';
export default function setProxy(
context: typeof globalThis,
ignoredHeaders: boolean | string[],
sanitize: (data: RequestResponseData) => RequestResponseData,
sendMessage: (message: any) => void,
isServiceUrl: (url: string) => boolean,
tokenUrlMatcher?: (url: string) => boolean,
mode: 'fetch' | 'xhr' | 'all' = 'fetch'
) {
if (context.XMLHttpRequest && mode !== 'fetch') {
context.XMLHttpRequest = XHRProxy.create(
ignoredHeaders,
sanitize,
sendMessage,
isServiceUrl,
tokenUrlMatcher
);
}
if (context.fetch && mode !== 'xhr') {
context.fetch = FetchProxy.create(
ignoredHeaders,
sanitize,
sendMessage,
isServiceUrl,
tokenUrlMatcher
);
}
}