32 lines
866 B
TypeScript
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
|
|
);
|
|
}
|
|
}
|