Skip to content

Commit 8969d4b

Browse files
authored
Add fallback for old and new XHRInterceptor import (#114)
1 parent 3235287 commit 8969d4b

File tree

5 files changed

+29
-17
lines changed

5 files changed

+29
-17
lines changed

module.d.ts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,3 @@
1-
// https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Network/XHRInterceptor.js
2-
declare module 'react-native/Libraries/Network/XHRInterceptor' {
3-
export function isInterceptorEnabled(): boolean;
4-
export function setOpenCallback(...props: any): void;
5-
export function setRequestHeaderCallback(...props: any): void;
6-
export function setSendCallback(...props: any): void;
7-
export function setHeaderReceivedCallback(...props: any): void;
8-
export function setResponseCallback(...props: any): void;
9-
export function enableInterception(): void;
10-
export function disableInterception(): void;
11-
}
12-
131
declare module 'react-native/Libraries/Blob/FileReader' {
142
type Events =
153
| 'abort'

src/Logger.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import XHRInterceptor from 'react-native/Libraries/Network/XHRInterceptor';
1+
import XHRInterceptor from './XHRInterceptor';
22
import NetworkRequestInfo from './NetworkRequestInfo';
33
import { Headers, RequestMethod, StartNetworkLoggingOptions } from './types';
44
import extractHost from './utils/extractHost';

src/XHRInterceptor.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
type XHRInterceptorModule = {
2+
isInterceptorEnabled: () => boolean;
3+
setOpenCallback: (...props: any[]) => void;
4+
setRequestHeaderCallback: (...props: any[]) => void;
5+
setSendCallback: (...props: any[]) => void;
6+
setHeaderReceivedCallback: (...props: any[]) => void;
7+
setResponseCallback: (...props: any[]) => void;
8+
enableInterception: () => void;
9+
disableInterception: () => void;
10+
};
11+
12+
let XHRInterceptor: XHRInterceptorModule;
13+
try {
14+
// new location for React Native 0.79+
15+
XHRInterceptor = require('react-native/src/private/inspector/XHRInterceptor');
16+
} catch {
17+
try {
18+
XHRInterceptor = require('react-native/Libraries/Network/XHRInterceptor');
19+
} catch {
20+
throw new Error('XHRInterceptor could not be found in either location');
21+
}
22+
}
23+
24+
export default XHRInterceptor;

src/__tests__/Logger.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import XHRInterceptor from 'react-native/Libraries/Network/XHRInterceptor';
1+
import XHRInterceptor from '../XHRInterceptor';
22
import { warn } from '../utils/logger';
33
import Logger from '../Logger';
44
import { LOGGER_MAX_REQUESTS, LOGGER_REFRESH_RATE } from '../constant';
55

66
jest.mock('react-native/Libraries/Blob/FileReader', () => ({}));
7-
jest.mock('react-native/Libraries/Network/XHRInterceptor', () => ({
7+
jest.mock('../XHRInterceptor', () => ({
88
isInterceptorEnabled: jest.fn(),
99
setOpenCallback: jest.fn(),
1010
setRequestHeaderCallback: jest.fn(),

src/__tests__/index.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import XHRInterceptor from 'react-native/Libraries/Network/XHRInterceptor';
1+
import XHRInterceptor from '../XHRInterceptor';
22
import { startNetworkLogging, stopNetworkLogging } from '..';
33
import logger from '../loggerSingleton';
44
import { LOGGER_MAX_REQUESTS, LOGGER_REFRESH_RATE } from '../constant';
55

66
jest.mock('react-native/Libraries/Blob/FileReader', () => ({}));
7-
jest.mock('react-native/Libraries/Network/XHRInterceptor', () => ({
7+
jest.mock('../XHRInterceptor', () => ({
88
isInterceptorEnabled: jest.fn(),
99
setOpenCallback: jest.fn(),
1010
setRequestHeaderCallback: jest.fn(),

0 commit comments

Comments
 (0)