Skip to content

Commit d723fd9

Browse files
committed
chore: updated depenciees]
1 parent 12ff5ce commit d723fd9

File tree

3 files changed

+227
-8
lines changed

3 files changed

+227
-8
lines changed

README.md

Lines changed: 196 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,212 @@
1-
# react-native-api-debugger
1+
# React Native API Debugger
22

3-
API logger/visualizer for react native mobile application
3+
A comprehensive network request debugging tool for React Native applications. Monitor, inspect, and debug all your app's network requests with an intuitive overlay interface.
4+
5+
[![Version](https://img.shields.io/npm/v/react-native-api-logger)](https://www.npmjs.com/package/react-native-api-logger)
6+
[![License](https://img.shields.io/npm/l/react-native-api-logger)](https://github.com/your-username/react-native-api-logger/blob/main/LICENSE)
7+
[![Platform](https://img.shields.io/badge/platform-react--native-blue)](https://reactnative.dev/)
8+
9+
10+
11+
<img
12+
src="/demo/demo_RN_logger.png"
13+
alt="Alt text"
14+
title="React Native API Logger"
15+
style="margin:0 4px; width: 200px"
16+
/>
17+
18+
19+
## Features
20+
21+
- **Real-time Network Monitoring** - Automatically intercepts all fetch() and XMLHttpRequest calls
22+
- **Overlay Interface** - Non-intrusive floating button and modal interface
23+
- **Request Details** - View headers, body, response, timing, and status codes
24+
- **cURL Generation** - Copy requests as cURL commands for debugging
25+
- **Request Filtering** - Search and filter by URL, method, or API endpoints
26+
- **Error Tracking** - Easily identify failed requests and network errors
27+
- **Device Shake Support** - Optional shake-to-show functionality
428

529
## Installation
630

7-
```sh
31+
```bash
832
npm install react-native-api-debugger
933
```
1034

11-
## Usage
35+
### Peer Dependencies
36+
37+
This package requires the following peer dependencies:
38+
39+
```bash
40+
npm install @react-native-clipboard/clipboard react-native-shake react-native-svg
41+
```
42+
43+
44+
## Quick Start
45+
46+
### Basic Usage
47+
48+
```typescript
49+
import React, { useEffect } from 'react';
50+
import { View } from 'react-native';
51+
import { networkLogger, NetworkLoggerOverlay } from 'react-native-api-debugger';
52+
53+
export default function App() {
54+
useEffect(() => {
55+
// Initialize the network logger
56+
networkLogger.setupInterceptor();
57+
}, []);
1258

59+
return (
60+
<View style={{ flex: 1 }}>
61+
{/* Your app content */}
62+
63+
{/* Add the network logger overlay */}
64+
<NetworkLoggerOverlay networkLogger={networkLogger} />
65+
</View>
66+
);
67+
}
68+
```
69+
70+
### With Device Shake Support
71+
72+
```typescript
73+
import React, { useEffect } from 'react';
74+
import { View } from 'react-native';
75+
import { networkLogger, NetworkLoggerOverlay } from 'react-native-api-debugger';
76+
77+
export default function App() {
78+
useEffect(() => {
79+
networkLogger.setupInterceptor();
80+
}, []);
81+
82+
return (
83+
<View style={{ flex: 1 }}>
84+
{/* Your app content */}
85+
86+
{/* Enable shake-to-show functionality */}
87+
<NetworkLoggerOverlay
88+
networkLogger={networkLogger}
89+
enableDeviceShake={true}
90+
/>
91+
</View>
92+
);
93+
}
94+
```
95+
96+
97+
### NetworkLoggerOverlay
98+
99+
The UI component that displays the network logs.
100+
101+
#### Props
102+
103+
| Prop | Type | Default | Description |
104+
|------|------|---------|-------------|
105+
| `networkLogger` | `NetworkLogger` | **Required** | The network logger instance |
106+
| `enableDeviceShake` | `boolean` | `false` | Enable shake-to-show functionality |
107+
108+
#### Example
109+
110+
```typescript
111+
<NetworkLoggerOverlay
112+
networkLogger={networkLogger}
113+
enableDeviceShake={true}
114+
/>
115+
```
13116

14-
```js
15-
import { multiply } from 'react-native-api-debugger';
117+
### Types
16118

17-
// ...
119+
The package exports TypeScript types for better development experience:
18120

19-
const result = await multiply(3, 7);
121+
```typescript
122+
import type {
123+
NetworkLog,
124+
NetworkResponse,
125+
NetworkRequestHeaders,
126+
LogListener
127+
} from 'react-native-api-debugger';
20128
```
21129

130+
## Usage Examples
131+
132+
### Development vs Production
133+
134+
```typescript
135+
import { networkLogger, NetworkLoggerOverlay } from 'react-native-api-debugger';
136+
137+
export default function App() {
138+
useEffect(() => {
139+
// Only enable in development
140+
if (__DEV__) {
141+
networkLogger.setupInterceptor();
142+
}
143+
}, []);
144+
145+
return (
146+
<View style={{ flex: 1 }}>
147+
{/* Your app content */}
148+
149+
{/* Only show in development */}
150+
{__DEV__ && (
151+
<NetworkLoggerOverlay
152+
networkLogger={networkLogger}
153+
enableDeviceShake={true}
154+
/>
155+
)}
156+
</View>
157+
);
158+
}
159+
```
160+
161+
## Best Practices
162+
163+
### 1. Development Only
164+
165+
```typescript
166+
// Only enable in development builds
167+
if (__DEV__) {
168+
networkLogger.setupInterceptor();
169+
}
170+
```
171+
172+
### 2. Memory Management
173+
174+
The logger automatically limits stored requests to prevent memory issues:
175+
- Maximum 100 requests stored
176+
- Oldest requests are automatically removed
177+
178+
### 3. Sensitive Data
179+
180+
Be cautious with sensitive data in network requests:
181+
- The logger captures all headers and request/response bodies
182+
- Consider disabling in production builds
183+
- Review logged data before sharing screenshots
184+
185+
186+
### TypeScript Errors
187+
188+
1. Ensure you're importing types correctly:
189+
```typescript
190+
import type { NetworkLog } from 'react-native-api-logger';
191+
```
192+
193+
## Contributing
194+
195+
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
196+
197+
## License
198+
199+
MIT License - see [LICENSE](LICENSE) file for details.
200+
201+
## Support
202+
203+
- 🐛 **Bug Reports**: [GitHub Issues](https://github.com/your-username/react-native-api-logger/issues)
204+
- 💡 **Feature Requests**: [GitHub Discussions](https://github.com/your-username/react-native-api-logger/discussions)
205+
- 📖 **Documentation**: [Wiki](https://github.com/your-username/react-native-api-logger/wiki)
206+
207+
---
208+
209+
**Made with ❤️ for React Native developers**
22210

23211
## Contributing
24212

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
"@eslint/eslintrc": "^3.3.0",
6565
"@eslint/js": "^9.22.0",
6666
"@evilmartians/lefthook": "^1.5.0",
67+
"@react-native-clipboard/clipboard": "^1.16.3",
6768
"@react-native/babel-preset": "0.78.2",
6869
"@react-native/eslint-config": "^0.78.0",
6970
"@release-it/conventional-changelog": "^9.0.2",
@@ -79,6 +80,7 @@
7980
"react": "19.0.0",
8081
"react-native": "0.79.5",
8182
"react-native-builder-bob": "^0.37.0",
83+
"react-native-shake": "^6.7.8",
8284
"release-it": "^17.10.0",
8385
"typescript": "^5.8.3"
8486
},

yarn.lock

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2899,6 +2899,23 @@ __metadata:
28992899
languageName: node
29002900
linkType: hard
29012901

2902+
"@react-native-clipboard/clipboard@npm:^1.16.3":
2903+
version: 1.16.3
2904+
resolution: "@react-native-clipboard/clipboard@npm:1.16.3"
2905+
peerDependencies:
2906+
react: ">= 16.9.0"
2907+
react-native: ">= 0.61.5"
2908+
react-native-macos: ">= 0.61.0"
2909+
react-native-windows: ">= 0.61.0"
2910+
peerDependenciesMeta:
2911+
react-native-macos:
2912+
optional: true
2913+
react-native-windows:
2914+
optional: true
2915+
checksum: 3d9944fc2c4acbecf917e752cc36ec92c4dcdb590c94c81c78c24df9ddd4b02448e252eb39e0949000b01046cfdfe2b03e1676c5e3ac0fe7eb3bf6b649970c27
2916+
languageName: node
2917+
linkType: hard
2918+
29022919
"@react-native/assets-registry@npm:0.79.5":
29032920
version: 0.79.5
29042921
resolution: "@react-native/assets-registry@npm:0.79.5"
@@ -11380,6 +11397,7 @@ __metadata:
1138011397
"@eslint/eslintrc": ^3.3.0
1138111398
"@eslint/js": ^9.22.0
1138211399
"@evilmartians/lefthook": ^1.5.0
11400+
"@react-native-clipboard/clipboard": ^1.16.3
1138311401
"@react-native/babel-preset": 0.78.2
1138411402
"@react-native/eslint-config": ^0.78.0
1138511403
"@release-it/conventional-changelog": ^9.0.2
@@ -11395,6 +11413,7 @@ __metadata:
1139511413
react: 19.0.0
1139611414
react-native: 0.79.5
1139711415
react-native-builder-bob: ^0.37.0
11416+
react-native-shake: ^6.7.8
1139811417
release-it: ^17.10.0
1139911418
typescript: ^5.8.3
1140011419
peerDependencies:
@@ -11497,6 +11516,16 @@ __metadata:
1149711516
languageName: node
1149811517
linkType: hard
1149911518

11519+
"react-native-shake@npm:^6.7.8":
11520+
version: 6.7.8
11521+
resolution: "react-native-shake@npm:6.7.8"
11522+
peerDependencies:
11523+
react: "*"
11524+
react-native: "*"
11525+
checksum: a0d12169c1d5477a38751b6a555efd067f4f2a997d9151817e0ccb87b0df05361f4868d58945cc7fea260cb7fb36cf8c2112cbb716eb7594ed2c1e2ba046f7f7
11526+
languageName: node
11527+
linkType: hard
11528+
1150011529
"react-native-web@npm:~0.20.0":
1150111530
version: 0.20.0
1150211531
resolution: "react-native-web@npm:0.20.0"

0 commit comments

Comments
 (0)