@codeimplants/app-network
v1.0.6
Published
Cross-platform network connectivity monitoring and resilient API client for Web and React Native.
Readme
@codeimplants/app-network
A lightweight, enterprise-grade network connectivity and instability detection package for React and React Native applications. This package provides pure state management without imposing any UI, allowing full customization.
Features
- 🔌 Universal Connectivity: Works on Web and React Native.
- 📉 Instability Detection: Detects slow or unstable connections (high latency).
- 🔄 Real-time Updates: React hooks for consuming network state.
- ⚡ Lightweight: Minimal dependencies, focused purely on logic.
Installation
npm install @codeimplants/app-networkUsage
1. Wrap your application with NetworkProvider
// App.tsx
import { NetworkProvider } from '@codeimplants/app-network';
function App() {
return (
<NetworkProvider
instabilityConfig={{
pingInterval: 5000,
threshold: 1500, // ms
}}
>
<YourApp />
</NetworkProvider>
);
}2. Use useNetwork hook
Access the connectivity state anywhere in your app.
import { useNetwork } from '@codeimplants/app-network';
const StatusIndicator = () => {
const { isOnline, isUnstable, latency } = useNetwork();
if (!isOnline) return <div>No Internet Connection</div>;
if (isUnstable) return <div>Connection Unstable (Latency: {latency}ms)</div>;
return <div>Online</div>;
};3. Use useNetworkInstability (Standalone)
If you don't want to use the provider, you can use the hook directly.
import { useNetworkInstability } from '@codeimplants/app-network';
const MyComponent = () => {
const { isUnstable, latency } = useNetworkInstability();
// ...
}API
NetworkProvider Props
| Prop | Type | Description |
|Args|Type|Description|
|---|---|---|
| children | ReactNode | Your application components. |
| instabilityConfig | object | Configuration for instability detection. |
| instabilityConfig.pingInterval | number | Interval in ms to check latency (default: 5000). |
| instabilityConfig.threshold | number | Latency threshold in ms to consider connection unstable (default: 1500). |
| instabilityConfig.checkUrl | string | URL to ping for latency checks (default: Google's generate_204). |
useNetwork Return Value
| Property | Type | Description |
|---|---|---|
| isOnline | boolean | true if connected to the internet. |
| isUnstable | boolean | true if high latency is detected. |
| latency | number \| null | Current estimated latency in ms. |
| lastOnlineAt | number \| null | Timestamp when the device was last online. |
| isCheckingInstability | boolean | true when a ping check is in progress. |
License
MIT
