@mustafaaksoy41/react-native-offline-queue 0.1.4 β 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -3
- package/lib/commonjs/components/OfflineProvider.js +18 -12
- package/lib/commonjs/components/OfflineProvider.js.map +1 -1
- package/lib/commonjs/core/OfflineManager.js +21 -0
- package/lib/commonjs/core/OfflineManager.js.map +1 -1
- package/lib/module/components/OfflineProvider.js +20 -12
- package/lib/module/components/OfflineProvider.js.map +1 -1
- package/lib/module/core/OfflineManager.js +21 -0
- package/lib/module/core/OfflineManager.js.map +1 -1
- package/lib/typescript/components/OfflineProvider.d.ts +2 -4
- package/lib/typescript/components/OfflineProvider.d.ts.map +1 -1
- package/lib/typescript/core/OfflineManager.d.ts +6 -0
- package/lib/typescript/core/OfflineManager.d.ts.map +1 -1
- package/package.json +15 -3
- package/src/components/OfflineProvider.tsx +16 -14
- package/src/core/OfflineManager.ts +25 -0
package/README.md
CHANGED
|
@@ -5,10 +5,13 @@
|
|
|
5
5
|
**A lightweight, high-performance offline queue and sync manager for React Native.**
|
|
6
6
|
Queue operations when offline, sync automatically or manually when connectivity returns. Works great with React Query (TanStack Query).
|
|
7
7
|
|
|
8
|
+
π **[Full Documentation](https://messivite.github.io/react-native-offline-queue/)** Β· [GitHub](https://github.com/messivite/react-native-offline-queue) Β· [npm](https://www.npmjs.com/package/@mustafaaksoy41/react-native-offline-queue)
|
|
9
|
+
|
|
8
10
|
<br />
|
|
9
11
|
|
|
10
12
|
<!-- Package Info -->
|
|
11
13
|
[](https://www.npmjs.com/package/@mustafaaksoy41/react-native-offline-queue)
|
|
14
|
+
[](https://messivite.github.io/react-native-offline-queue/)
|
|
12
15
|
[](https://www.npmjs.com/package/@mustafaaksoy41/react-native-offline-queue)
|
|
13
16
|
[](https://github.com/messivite/react-native-offline-queue/blob/main/LICENSE)
|
|
14
17
|
[](https://bundlephobia.com/package/@mustafaaksoy41/react-native-offline-queue)
|
|
@@ -29,6 +32,11 @@ Queue operations when offline, sync automatically or manually when connectivity
|
|
|
29
32
|
<!-- Core Dependency -->
|
|
30
33
|
[](https://github.com/react-native-netinfo/react-native-netinfo)
|
|
31
34
|
|
|
35
|
+
<!-- CI & Testing -->
|
|
36
|
+
[](https://github.com/messivite/react-native-offline-queue/actions/workflows/tests.yml)
|
|
37
|
+
[](https://jestjs.io/)
|
|
38
|
+
[](#testing)
|
|
39
|
+
|
|
32
40
|
<br />
|
|
33
41
|
|
|
34
42
|
<p align="center">
|
|
@@ -46,10 +54,37 @@ Queue operations when offline, sync automatically or manually when connectivity
|
|
|
46
54
|
- **Flexible sync modes** β `auto` (silent sync) or `manual` (prompt the user)
|
|
47
55
|
- **Pluggable storage** β MMKV, AsyncStorage, or bring your own adapter
|
|
48
56
|
- **Live sync progress** β track each item as it syncs (pending β syncing β success/failed)
|
|
49
|
-
- **Zero unnecessary renders** β built on `useSyncExternalStore
|
|
57
|
+
- **Zero unnecessary re-renders** β all hooks built on `useSyncExternalStore`, no Context-based cascading
|
|
58
|
+
- **Mutation state tracking** β `isLoading`, `isQueued`, `isSuccess`, `isError` per mutation
|
|
59
|
+
- **React Query compatible** β use `mutateAsync` inside handlers
|
|
50
60
|
- **Customizable restore UI** β Alert, Toast, BottomSheet, or silent β you decide
|
|
51
61
|
- **Background task compatible** β use `OfflineManager.flushQueue()` from any context
|
|
52
62
|
|
|
63
|
+
## Network Status
|
|
64
|
+
|
|
65
|
+
The most basic thing: know if the user is online or offline. Use this anywhere in your app β only the component that reads `isOnline` re-renders when it changes.
|
|
66
|
+
|
|
67
|
+
```tsx
|
|
68
|
+
import { useNetworkStatus } from '@mustafaaksoy41/react-native-offline-queue';
|
|
69
|
+
|
|
70
|
+
function ConnectionBanner() {
|
|
71
|
+
const { isOnline } = useNetworkStatus();
|
|
72
|
+
|
|
73
|
+
if (isOnline === null) return null; // still detecting
|
|
74
|
+
if (isOnline) return null; // online, nothing to show
|
|
75
|
+
|
|
76
|
+
return (
|
|
77
|
+
<View style={{ backgroundColor: '#ff4444', padding: 8 }}>
|
|
78
|
+
<Text style={{ color: 'white', textAlign: 'center' }}>
|
|
79
|
+
π΄ You are offline. Changes will sync when youβre back online.
|
|
80
|
+
</Text>
|
|
81
|
+
</View>
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
> **No re-renders:** `useNetworkStatus` is built on `useSyncExternalStore`. It reads from a singleton store, not React Context. Components that don't call this hook are completely unaffected by connectivity changes.
|
|
87
|
+
|
|
53
88
|
## Installation
|
|
54
89
|
|
|
55
90
|
```bash
|
|
@@ -581,12 +616,28 @@ const { queue, pendingCount, isSyncing, syncNow, clearQueue } = useOfflineQueue(
|
|
|
581
616
|
|
|
582
617
|
### `useNetworkStatus()`
|
|
583
618
|
|
|
584
|
-
|
|
619
|
+
Reactive connectivity status. Built on `useSyncExternalStore` β only re-renders when the value actually changes. No Context, no cascading re-renders.
|
|
585
620
|
|
|
586
621
|
```tsx
|
|
587
|
-
|
|
622
|
+
import { useNetworkStatus } from '@mustafaaksoy41/react-native-offline-queue';
|
|
623
|
+
|
|
624
|
+
function MyComponent() {
|
|
625
|
+
const { isOnline } = useNetworkStatus();
|
|
626
|
+
|
|
627
|
+
return (
|
|
628
|
+
<View>
|
|
629
|
+
<Text>Status: {isOnline === null ? 'Detecting...' : isOnline ? 'β
Online' : 'π΄ Offline'}</Text>
|
|
630
|
+
</View>
|
|
631
|
+
);
|
|
632
|
+
}
|
|
588
633
|
```
|
|
589
634
|
|
|
635
|
+
| Property | Type | Description |
|
|
636
|
+
|----------|------|-------------|
|
|
637
|
+
| `isOnline` | `boolean \| null` | `true` = online, `false` = offline, `null` = not yet detected |
|
|
638
|
+
|
|
639
|
+
> **Re-render guarantee:** If your component doesn't call `useNetworkStatus()`, it will **never** re-render due to connectivity changes. This is by design β we use a subscriber pattern instead of React Context.
|
|
640
|
+
|
|
590
641
|
### `useSyncProgress()`
|
|
591
642
|
|
|
592
643
|
Live progress tracking during a sync session. Useful for building progress UIs inside sheets or modals.
|
|
@@ -848,6 +899,39 @@ When the device comes back online, the manager either flushes the queue automati
|
|
|
848
899
|
|
|
849
900
|
Storage is abstracted behind a simple `getItem` / `setItem` / `removeItem` interface, so swapping between MMKV, AsyncStorage, Realm, or your own backend is just a config change.
|
|
850
901
|
|
|
902
|
+
## Testing
|
|
903
|
+
|
|
904
|
+
This package is tested with [Jest](https://jestjs.io/). All core logic is covered with unit tests.
|
|
905
|
+
|
|
906
|
+
```bash
|
|
907
|
+
# Run all tests
|
|
908
|
+
npm test
|
|
909
|
+
|
|
910
|
+
# Run in watch mode
|
|
911
|
+
npm run test:watch
|
|
912
|
+
|
|
913
|
+
# Run with coverage report
|
|
914
|
+
npm test -- --coverage
|
|
915
|
+
```
|
|
916
|
+
|
|
917
|
+
### Test Coverage
|
|
918
|
+
|
|
919
|
+
| Module | Tests | What's Covered |
|
|
920
|
+
|--------|-------|----------------|
|
|
921
|
+
| **Queue CRUD** | 8 | push, remove, clear, getQueue, unique ID generation |
|
|
922
|
+
| **Subscriptions** | 2 | listener notify on change, cleanup after unsubscribe |
|
|
923
|
+
| **Network Status** | 5 | initial null, setOnline, no-op on same value, snapshot |
|
|
924
|
+
| **Handler Registry** | 4 | register, unregister, overwrite, unknown handler |
|
|
925
|
+
| **flushQueue** | 8 | per-action > global handler, retry count, failed items persist, concurrent guard |
|
|
926
|
+
| **Sync Progress** | 3 | initial state, active tracking, per-item success/fail status |
|
|
927
|
+
| **Online Restore** | 4 | auto flush, manual callback, empty queue, discardQueue |
|
|
928
|
+
| **Configuration** | 3 | syncMode, onSyncAction, isInitialized |
|
|
929
|
+
| **Total** | **38** | |
|
|
930
|
+
|
|
931
|
+
### CI
|
|
932
|
+
|
|
933
|
+
Tests run automatically on every push and pull request via [GitHub Actions](https://github.com/messivite/react-native-offline-queue/actions). The CI pipeline tests against Node.js 18 and 20.
|
|
934
|
+
|
|
851
935
|
## License
|
|
852
936
|
|
|
853
937
|
MIT
|
|
@@ -3,23 +3,28 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.OfflineProvider = void 0;
|
|
7
|
+
exports.useNetworkStatus = useNetworkStatus;
|
|
7
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
9
|
var _netinfo = _interopRequireDefault(require("@react-native-community/netinfo"));
|
|
9
10
|
var _OfflineManager = require("../core/OfflineManager");
|
|
10
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
13
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
// βββ useNetworkStatus (useSyncExternalStore β zero unnecessary re-renders) βββ
|
|
15
|
+
function useNetworkStatus() {
|
|
16
|
+
const isOnline = (0, _react.useSyncExternalStore)(_OfflineManager.OfflineManager.subscribeNetwork, _OfflineManager.OfflineManager.getNetworkSnapshot, _OfflineManager.OfflineManager.getNetworkSnapshot);
|
|
17
|
+
return {
|
|
18
|
+
isOnline
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// βββ OfflineProvider βββ
|
|
23
|
+
|
|
18
24
|
const OfflineProvider = ({
|
|
19
25
|
children,
|
|
20
26
|
config
|
|
21
27
|
}) => {
|
|
22
|
-
const [isOnline, setIsOnline] = (0, _react.useState)(null);
|
|
23
28
|
const wasOfflineRef = (0, _react.useRef)(false);
|
|
24
29
|
(0, _react.useEffect)(() => {
|
|
25
30
|
_OfflineManager.OfflineManager.configure(config);
|
|
@@ -28,7 +33,9 @@ const OfflineProvider = ({
|
|
|
28
33
|
const unsubscribe = _netinfo.default.addEventListener(state => {
|
|
29
34
|
const connected = !!state.isConnected;
|
|
30
35
|
if (__DEV__) console.log('[OfflineQueue] Network:', connected ? 'online' : 'offline', '| type:', state.type);
|
|
31
|
-
|
|
36
|
+
|
|
37
|
+
// Update the singleton β only notifies listeners if value actually changed
|
|
38
|
+
_OfflineManager.OfflineManager.setOnline(connected);
|
|
32
39
|
if (!connected) {
|
|
33
40
|
wasOfflineRef.current = true;
|
|
34
41
|
}
|
|
@@ -40,10 +47,9 @@ const OfflineProvider = ({
|
|
|
40
47
|
});
|
|
41
48
|
return () => unsubscribe();
|
|
42
49
|
}, []);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
},
|
|
50
|
+
|
|
51
|
+
// No context provider needed β useNetworkStatus reads from OfflineManager directly
|
|
52
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
47
53
|
children: children
|
|
48
54
|
});
|
|
49
55
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_netinfo","_interopRequireDefault","_OfflineManager","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_netinfo","_interopRequireDefault","_OfflineManager","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useNetworkStatus","isOnline","useSyncExternalStore","OfflineManager","subscribeNetwork","getNetworkSnapshot","OfflineProvider","children","config","wasOfflineRef","useRef","useEffect","configure","unsubscribe","NetInfo","addEventListener","state","connected","isConnected","__DEV__","console","log","type","setOnline","current","handleOnlineRestore","jsx","Fragment","exports"],"sourceRoot":"../../../src","sources":["components/OfflineProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -27,12 +27,33 @@ class OfflineManagerClass {
|
|
|
27
27
|
// Progress listeners (for useSyncProgress)
|
|
28
28
|
progressListeners = new Set();
|
|
29
29
|
|
|
30
|
+
// Network status listeners (for useNetworkStatus / useSyncExternalStore)
|
|
31
|
+
networkListeners = new Set();
|
|
32
|
+
|
|
30
33
|
// Per-action handler registry
|
|
31
34
|
actionHandlers = new Map();
|
|
32
35
|
isInitialized = false;
|
|
33
36
|
syncMode = 'manual';
|
|
34
37
|
isSyncing = false;
|
|
35
38
|
|
|
39
|
+
// βββ Network Status State βββ
|
|
40
|
+
_isOnline = null;
|
|
41
|
+
get isOnline() {
|
|
42
|
+
return this._isOnline;
|
|
43
|
+
}
|
|
44
|
+
setOnline(online) {
|
|
45
|
+
if (this._isOnline === online) return; // no change, no re-render
|
|
46
|
+
this._isOnline = online;
|
|
47
|
+
this.networkListeners.forEach(l => l());
|
|
48
|
+
}
|
|
49
|
+
subscribeNetwork = listener => {
|
|
50
|
+
this.networkListeners.add(listener);
|
|
51
|
+
return () => this.networkListeners.delete(listener);
|
|
52
|
+
};
|
|
53
|
+
getNetworkSnapshot = () => {
|
|
54
|
+
return this._isOnline;
|
|
55
|
+
};
|
|
56
|
+
|
|
36
57
|
// βββ Sync Progress State βββ
|
|
37
58
|
_syncProgress = {
|
|
38
59
|
..._types.INITIAL_SYNC_PROGRESS
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_StorageAdapter","require","_types","_adapters","generateUUID","replace","c","r","Math","random","v","toString","OfflineManagerClass","queue","storage","MemoryStorageAdapter","storageKey","useRecordAdapter","queueListeners","Set","progressListeners","actionHandlers","Map","isInitialized","syncMode","isSyncing","_syncProgress","INITIAL_SYNC_PROGRESS","syncProgress","configure","config","storageType","getMMKVAdapter","getAsyncStorageAdapter","getRealmAdapter","realmOptions","isRecordAdapter","onSyncAction","onOnlineRestore","loadQueue","adapter","getAll","data","getItem","JSON","parse","notifyQueueListeners","e","console","warn","saveQueue","setItem","stringify","subscribeQueue","listener","add","delete","subscribe","forEach","l","subscribeProgress","updateProgress","partial","updateProgressItem","id","update","items","map","item","action","push","actionName","payload","createdAt","Date","now","retryCount","insert","remove","filter","a","clear","getQueue","registerHandler","handler","set","unregisterHandler","getHandler","get","flushQueue","length","hasAnyHandler","size","currentQueue","progressItems","status","isActive","totalCount","completedCount","failedCount","currentAction","Error","error","message","target","find","handleOnlineRestore","pendingCount","syncNow","discardQueue","OfflineManager","exports"],"sourceRoot":"../../../src","sources":["core/OfflineManager.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_StorageAdapter","require","_types","_adapters","generateUUID","replace","c","r","Math","random","v","toString","OfflineManagerClass","queue","storage","MemoryStorageAdapter","storageKey","useRecordAdapter","queueListeners","Set","progressListeners","networkListeners","actionHandlers","Map","isInitialized","syncMode","isSyncing","_isOnline","isOnline","setOnline","online","forEach","l","subscribeNetwork","listener","add","delete","getNetworkSnapshot","_syncProgress","INITIAL_SYNC_PROGRESS","syncProgress","configure","config","storageType","getMMKVAdapter","getAsyncStorageAdapter","getRealmAdapter","realmOptions","isRecordAdapter","onSyncAction","onOnlineRestore","loadQueue","adapter","getAll","data","getItem","JSON","parse","notifyQueueListeners","e","console","warn","saveQueue","setItem","stringify","subscribeQueue","subscribe","subscribeProgress","updateProgress","partial","updateProgressItem","id","update","items","map","item","action","push","actionName","payload","createdAt","Date","now","retryCount","insert","remove","filter","a","clear","getQueue","registerHandler","handler","set","unregisterHandler","getHandler","get","flushQueue","length","hasAnyHandler","size","currentQueue","progressItems","status","isActive","totalCount","completedCount","failedCount","currentAction","Error","error","message","target","find","handleOnlineRestore","pendingCount","syncNow","discardQueue","OfflineManager","exports"],"sourceRoot":"../../../src","sources":["core/OfflineManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, {
|
|
3
|
+
import React, { useEffect, useRef } from 'react';
|
|
4
|
+
import { useSyncExternalStore } from 'react';
|
|
4
5
|
import NetInfo from '@react-native-community/netinfo';
|
|
5
6
|
import { OfflineManager } from '../core/OfflineManager';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
|
|
8
|
+
// βββ useNetworkStatus (useSyncExternalStore β zero unnecessary re-renders) βββ
|
|
9
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
export function useNetworkStatus() {
|
|
11
|
+
const isOnline = useSyncExternalStore(OfflineManager.subscribeNetwork, OfflineManager.getNetworkSnapshot, OfflineManager.getNetworkSnapshot);
|
|
12
|
+
return {
|
|
13
|
+
isOnline
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// βββ OfflineProvider βββ
|
|
18
|
+
|
|
11
19
|
export const OfflineProvider = ({
|
|
12
20
|
children,
|
|
13
21
|
config
|
|
14
22
|
}) => {
|
|
15
|
-
const [isOnline, setIsOnline] = useState(null);
|
|
16
23
|
const wasOfflineRef = useRef(false);
|
|
17
24
|
useEffect(() => {
|
|
18
25
|
OfflineManager.configure(config);
|
|
@@ -21,7 +28,9 @@ export const OfflineProvider = ({
|
|
|
21
28
|
const unsubscribe = NetInfo.addEventListener(state => {
|
|
22
29
|
const connected = !!state.isConnected;
|
|
23
30
|
if (__DEV__) console.log('[OfflineQueue] Network:', connected ? 'online' : 'offline', '| type:', state.type);
|
|
24
|
-
|
|
31
|
+
|
|
32
|
+
// Update the singleton β only notifies listeners if value actually changed
|
|
33
|
+
OfflineManager.setOnline(connected);
|
|
25
34
|
if (!connected) {
|
|
26
35
|
wasOfflineRef.current = true;
|
|
27
36
|
}
|
|
@@ -33,10 +42,9 @@ export const OfflineProvider = ({
|
|
|
33
42
|
});
|
|
34
43
|
return () => unsubscribe();
|
|
35
44
|
}, []);
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
},
|
|
45
|
+
|
|
46
|
+
// No context provider needed β useNetworkStatus reads from OfflineManager directly
|
|
47
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
40
48
|
children: children
|
|
41
49
|
});
|
|
42
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useSyncExternalStore","NetInfo","OfflineManager","Fragment","_Fragment","jsx","_jsx","useNetworkStatus","isOnline","subscribeNetwork","getNetworkSnapshot","OfflineProvider","children","config","wasOfflineRef","configure","unsubscribe","addEventListener","state","connected","isConnected","__DEV__","console","log","type","setOnline","current","handleOnlineRestore"],"sourceRoot":"../../../src","sources":["components/OfflineProvider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAChD,SAASC,oBAAoB,QAAQ,OAAO;AAC5C,OAAOC,OAAO,MAAM,iCAAiC;AACrD,SAASC,cAAc,QAAmC,wBAAwB;;AAElF;AAAA,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA;AACA,OAAO,SAASC,gBAAgBA,CAAA,EAAG;EAC/B,MAAMC,QAAQ,GAAGR,oBAAoB,CACjCE,cAAc,CAACO,gBAAgB,EAC/BP,cAAc,CAACQ,kBAAkB,EACjCR,cAAc,CAACQ,kBACnB,CAAC;EAED,OAAO;IAAEF;EAAS,CAAC;AACvB;;AAEA;;AAMA,OAAO,MAAMG,eAA+C,GAAGA,CAAC;EAAEC,QAAQ;EAAEC;AAAO,CAAC,KAAK;EACrF,MAAMC,aAAa,GAAGf,MAAM,CAAC,KAAK,CAAC;EAEnCD,SAAS,CAAC,MAAM;IACZI,cAAc,CAACa,SAAS,CAACF,MAAM,CAAC;EACpC,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZf,SAAS,CAAC,MAAM;IACZ,MAAMkB,WAAW,GAAGf,OAAO,CAACgB,gBAAgB,CAAEC,KAAK,IAAK;MACpD,MAAMC,SAAS,GAAG,CAAC,CAACD,KAAK,CAACE,WAAW;MACrC,IAAIC,OAAO,EAAEC,OAAO,CAACC,GAAG,CAAC,yBAAyB,EAAEJ,SAAS,GAAG,QAAQ,GAAG,SAAS,EAAE,SAAS,EAAED,KAAK,CAACM,IAAI,CAAC;;MAE5G;MACAtB,cAAc,CAACuB,SAAS,CAACN,SAAS,CAAC;MAEnC,IAAI,CAACA,SAAS,EAAE;QACZL,aAAa,CAACY,OAAO,GAAG,IAAI;MAChC;MAEA,IAAIP,SAAS,IAAIL,aAAa,CAACY,OAAO,EAAE;QACpCZ,aAAa,CAACY,OAAO,GAAG,KAAK;QAC7B,IAAIL,OAAO,EAAEC,OAAO,CAACC,GAAG,CAAC,0DAA0D,CAAC;QACpFrB,cAAc,CAACyB,mBAAmB,CAAC,CAAC;MACxC;IACJ,CAAC,CAAC;IAEF,OAAO,MAAMX,WAAW,CAAC,CAAC;EAC9B,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,oBAAOV,IAAA,CAAAF,SAAA;IAAAQ,QAAA,EAAGA;EAAQ,CAAG,CAAC;AAC1B,CAAC","ignoreList":[]}
|
|
@@ -23,12 +23,33 @@ class OfflineManagerClass {
|
|
|
23
23
|
// Progress listeners (for useSyncProgress)
|
|
24
24
|
progressListeners = new Set();
|
|
25
25
|
|
|
26
|
+
// Network status listeners (for useNetworkStatus / useSyncExternalStore)
|
|
27
|
+
networkListeners = new Set();
|
|
28
|
+
|
|
26
29
|
// Per-action handler registry
|
|
27
30
|
actionHandlers = new Map();
|
|
28
31
|
isInitialized = false;
|
|
29
32
|
syncMode = 'manual';
|
|
30
33
|
isSyncing = false;
|
|
31
34
|
|
|
35
|
+
// βββ Network Status State βββ
|
|
36
|
+
_isOnline = null;
|
|
37
|
+
get isOnline() {
|
|
38
|
+
return this._isOnline;
|
|
39
|
+
}
|
|
40
|
+
setOnline(online) {
|
|
41
|
+
if (this._isOnline === online) return; // no change, no re-render
|
|
42
|
+
this._isOnline = online;
|
|
43
|
+
this.networkListeners.forEach(l => l());
|
|
44
|
+
}
|
|
45
|
+
subscribeNetwork = listener => {
|
|
46
|
+
this.networkListeners.add(listener);
|
|
47
|
+
return () => this.networkListeners.delete(listener);
|
|
48
|
+
};
|
|
49
|
+
getNetworkSnapshot = () => {
|
|
50
|
+
return this._isOnline;
|
|
51
|
+
};
|
|
52
|
+
|
|
32
53
|
// βββ Sync Progress State βββ
|
|
33
54
|
_syncProgress = {
|
|
34
55
|
...INITIAL_SYNC_PROGRESS
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MemoryStorageAdapter","isRecordAdapter","INITIAL_SYNC_PROGRESS","getMMKVAdapter","getAsyncStorageAdapter","getRealmAdapter","generateUUID","replace","c","r","Math","random","v","toString","OfflineManagerClass","queue","storage","storageKey","useRecordAdapter","queueListeners","Set","progressListeners","actionHandlers","Map","isInitialized","syncMode","isSyncing","_syncProgress","syncProgress","configure","config","storageType","realmOptions","onSyncAction","onOnlineRestore","loadQueue","adapter","getAll","data","getItem","JSON","parse","notifyQueueListeners","e","console","warn","saveQueue","setItem","stringify","subscribeQueue","listener","add","delete","subscribe","forEach","l","subscribeProgress","updateProgress","partial","updateProgressItem","id","update","items","map","item","action","push","actionName","payload","createdAt","Date","now","retryCount","insert","remove","filter","a","clear","getQueue","registerHandler","handler","set","unregisterHandler","getHandler","get","flushQueue","length","hasAnyHandler","size","currentQueue","progressItems","status","isActive","totalCount","completedCount","failedCount","currentAction","Error","error","message","target","find","handleOnlineRestore","pendingCount","syncNow","discardQueue","OfflineManager"],"sourceRoot":"../../../src","sources":["core/OfflineManager.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["MemoryStorageAdapter","isRecordAdapter","INITIAL_SYNC_PROGRESS","getMMKVAdapter","getAsyncStorageAdapter","getRealmAdapter","generateUUID","replace","c","r","Math","random","v","toString","OfflineManagerClass","queue","storage","storageKey","useRecordAdapter","queueListeners","Set","progressListeners","networkListeners","actionHandlers","Map","isInitialized","syncMode","isSyncing","_isOnline","isOnline","setOnline","online","forEach","l","subscribeNetwork","listener","add","delete","getNetworkSnapshot","_syncProgress","syncProgress","configure","config","storageType","realmOptions","onSyncAction","onOnlineRestore","loadQueue","adapter","getAll","data","getItem","JSON","parse","notifyQueueListeners","e","console","warn","saveQueue","setItem","stringify","subscribeQueue","subscribe","subscribeProgress","updateProgress","partial","updateProgressItem","id","update","items","map","item","action","push","actionName","payload","createdAt","Date","now","retryCount","insert","remove","filter","a","clear","getQueue","registerHandler","handler","set","unregisterHandler","getHandler","get","flushQueue","length","hasAnyHandler","size","currentQueue","progressItems","status","isActive","totalCount","completedCount","failedCount","currentAction","Error","error","message","target","find","handleOnlineRestore","pendingCount","syncNow","discardQueue","OfflineManager"],"sourceRoot":"../../../src","sources":["core/OfflineManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type OfflineManagerConfig } from '../core/OfflineManager';
|
|
3
|
-
|
|
3
|
+
export declare function useNetworkStatus(): {
|
|
4
4
|
isOnline: boolean | null;
|
|
5
|
-
}
|
|
6
|
-
export declare const useNetworkStatus: () => OfflineContextValue;
|
|
5
|
+
};
|
|
7
6
|
export interface OfflineProviderProps {
|
|
8
7
|
children: React.ReactNode;
|
|
9
8
|
config: OfflineManagerConfig;
|
|
10
9
|
}
|
|
11
10
|
export declare const OfflineProvider: React.FC<OfflineProviderProps>;
|
|
12
|
-
export {};
|
|
13
11
|
//# sourceMappingURL=OfflineProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OfflineProvider.d.ts","sourceRoot":"","sources":["../../../src/components/OfflineProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"OfflineProvider.d.ts","sourceRoot":"","sources":["../../../src/components/OfflineProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,OAAO,EAAkB,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAGnF,wBAAgB,gBAAgB;;EAQ/B;AAGD,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,EAAE,oBAAoB,CAAC;CAChC;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA+B1D,CAAC"}
|
|
@@ -21,12 +21,18 @@ declare class OfflineManagerClass {
|
|
|
21
21
|
private useRecordAdapter;
|
|
22
22
|
private queueListeners;
|
|
23
23
|
private progressListeners;
|
|
24
|
+
private networkListeners;
|
|
24
25
|
private actionHandlers;
|
|
25
26
|
isInitialized: boolean;
|
|
26
27
|
syncMode: 'auto' | 'manual';
|
|
27
28
|
onSyncAction?: (action: OfflineAction) => Promise<void>;
|
|
28
29
|
onOnlineRestore?: OfflineManagerConfig['onOnlineRestore'];
|
|
29
30
|
isSyncing: boolean;
|
|
31
|
+
private _isOnline;
|
|
32
|
+
get isOnline(): boolean | null;
|
|
33
|
+
setOnline(online: boolean): void;
|
|
34
|
+
subscribeNetwork: (listener: () => void) => (() => void);
|
|
35
|
+
getNetworkSnapshot: () => boolean | null;
|
|
30
36
|
private _syncProgress;
|
|
31
37
|
get syncProgress(): SyncProgress;
|
|
32
38
|
configure(config: OfflineManagerConfig): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OfflineManager.d.ts","sourceRoot":"","sources":["../../../src/core/OfflineManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAoB,MAAM,SAAS,CAAC;AAG7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAWvD,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,cAAc,GAAG,oBAAoB,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAG7B,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAGnC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAGxD,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE;QACzB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;KACnC,KAAK,IAAI,CAAC;CACZ;AAED,cAAM,mBAAmB;IACvB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,OAAO,CAAqE;IACpF,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,gBAAgB,CAAkB;IAG1C,OAAO,CAAC,cAAc,CAA8B;IAGpD,OAAO,CAAC,iBAAiB,CAA8B;IAGvD,OAAO,CAAC,cAAc,CAA2D;IAE1E,aAAa,UAAS;IACtB,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAY;IACvC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,eAAe,CAAC,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC1D,SAAS,UAAS;IAGzB,OAAO,CAAC,aAAa,CAA8C;IAEnE,IAAW,YAAY,IAAI,YAAY,CAEtC;IAGY,SAAS,CAAC,MAAM,EAAE,oBAAoB;YAsCrC,SAAS;YAkBT,SAAS;IAahB,cAAc,GAAI,UAAU,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC,CAG1D;IAGK,SAAS,aANmB,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC,CAMrB;IAEvC,OAAO,CAAC,oBAAoB;IAKrB,iBAAiB,GAAI,UAAU,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC,CAG7D;IAEF,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,kBAAkB;IAWb,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAoBlE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B,QAAQ,IAAI,aAAa,EAAE;IAK3B,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC;IAI5E,iBAAiB,CAAC,UAAU,EAAE,MAAM;IAIpC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS;IAKvE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA0FjC,mBAAmB;CAc3B;AAED,eAAO,MAAM,cAAc,qBAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"OfflineManager.d.ts","sourceRoot":"","sources":["../../../src/core/OfflineManager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mustafaaksoy41/react-native-offline-queue",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"description": "A flexible, high-performance offline queue and synchronizer for React Native. Works great with React Query (TanStack Query).",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -16,7 +16,12 @@
|
|
|
16
16
|
],
|
|
17
17
|
"scripts": {
|
|
18
18
|
"build": "bob build",
|
|
19
|
-
"
|
|
19
|
+
"test": "jest",
|
|
20
|
+
"test:watch": "jest --watch",
|
|
21
|
+
"docs:dev": "vitepress dev docs",
|
|
22
|
+
"docs:build": "vitepress build docs",
|
|
23
|
+
"docs:preview": "vitepress preview docs",
|
|
24
|
+
"postinstall": "echo '\\nπ¦ react-native-offline-queue installed!\\nβ οΈ Required peer: npm install @react-native-community/netinfo\\nπ‘ Optional peers: react-native-mmkv | @react-native-async-storage/async-storage | realm\\n'"
|
|
20
25
|
},
|
|
21
26
|
"keywords": [
|
|
22
27
|
"react-native",
|
|
@@ -33,7 +38,8 @@
|
|
|
33
38
|
"type": "git",
|
|
34
39
|
"url": "https://github.com/messivite/react-native-offline-queue.git"
|
|
35
40
|
},
|
|
36
|
-
"homepage": "https://github.
|
|
41
|
+
"homepage": "https://messivite.github.io/react-native-offline-queue/",
|
|
42
|
+
"documentation": "https://messivite.github.io/react-native-offline-queue/",
|
|
37
43
|
"bugs": {
|
|
38
44
|
"url": "https://github.com/messivite/react-native-offline-queue/issues"
|
|
39
45
|
},
|
|
@@ -56,12 +62,18 @@
|
|
|
56
62
|
"optional": true
|
|
57
63
|
}
|
|
58
64
|
},
|
|
65
|
+
"optionalDependencies": {
|
|
66
|
+
"@rollup/rollup-linux-x64-gnu": "4.59.0"
|
|
67
|
+
},
|
|
59
68
|
"devDependencies": {
|
|
60
69
|
"@react-native-community/netinfo": "^11.0.0",
|
|
70
|
+
"@types/jest": "^30.0.0",
|
|
61
71
|
"@types/react": "^18.2.6",
|
|
72
|
+
"jest": "^30.2.0",
|
|
62
73
|
"react": "18.2.0",
|
|
63
74
|
"react-native": "0.73.4",
|
|
64
75
|
"react-native-builder-bob": "^0.30.0",
|
|
76
|
+
"ts-jest": "^29.4.6",
|
|
65
77
|
"typescript": "^5.0.2",
|
|
66
78
|
"vitepress": "^1.6.4",
|
|
67
79
|
"vue": "^3.5.29"
|
|
@@ -1,22 +1,26 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
import { useSyncExternalStore } from 'react';
|
|
2
3
|
import NetInfo from '@react-native-community/netinfo';
|
|
3
4
|
import { OfflineManager, type OfflineManagerConfig } from '../core/OfflineManager';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
// βββ useNetworkStatus (useSyncExternalStore β zero unnecessary re-renders) βββ
|
|
7
|
+
export function useNetworkStatus() {
|
|
8
|
+
const isOnline = useSyncExternalStore(
|
|
9
|
+
OfflineManager.subscribeNetwork,
|
|
10
|
+
OfflineManager.getNetworkSnapshot,
|
|
11
|
+
OfflineManager.getNetworkSnapshot
|
|
12
|
+
);
|
|
10
13
|
|
|
11
|
-
|
|
14
|
+
return { isOnline };
|
|
15
|
+
}
|
|
12
16
|
|
|
17
|
+
// βββ OfflineProvider βββ
|
|
13
18
|
export interface OfflineProviderProps {
|
|
14
19
|
children: React.ReactNode;
|
|
15
20
|
config: OfflineManagerConfig;
|
|
16
21
|
}
|
|
17
22
|
|
|
18
23
|
export const OfflineProvider: React.FC<OfflineProviderProps> = ({ children, config }) => {
|
|
19
|
-
const [isOnline, setIsOnline] = useState<boolean | null>(null);
|
|
20
24
|
const wasOfflineRef = useRef(false);
|
|
21
25
|
|
|
22
26
|
useEffect(() => {
|
|
@@ -28,7 +32,8 @@ export const OfflineProvider: React.FC<OfflineProviderProps> = ({ children, conf
|
|
|
28
32
|
const connected = !!state.isConnected;
|
|
29
33
|
if (__DEV__) console.log('[OfflineQueue] Network:', connected ? 'online' : 'offline', '| type:', state.type);
|
|
30
34
|
|
|
31
|
-
|
|
35
|
+
// Update the singleton β only notifies listeners if value actually changed
|
|
36
|
+
OfflineManager.setOnline(connected);
|
|
32
37
|
|
|
33
38
|
if (!connected) {
|
|
34
39
|
wasOfflineRef.current = true;
|
|
@@ -44,9 +49,6 @@ export const OfflineProvider: React.FC<OfflineProviderProps> = ({ children, conf
|
|
|
44
49
|
return () => unsubscribe();
|
|
45
50
|
}, []);
|
|
46
51
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
{children}
|
|
50
|
-
</OfflineContext.Provider>
|
|
51
|
-
);
|
|
52
|
+
// No context provider needed β useNetworkStatus reads from OfflineManager directly
|
|
53
|
+
return <>{children}</>;
|
|
52
54
|
};
|
|
@@ -46,6 +46,9 @@ class OfflineManagerClass {
|
|
|
46
46
|
// Progress listeners (for useSyncProgress)
|
|
47
47
|
private progressListeners: Set<() => void> = new Set();
|
|
48
48
|
|
|
49
|
+
// Network status listeners (for useNetworkStatus / useSyncExternalStore)
|
|
50
|
+
private networkListeners: Set<() => void> = new Set();
|
|
51
|
+
|
|
49
52
|
// Per-action handler registry
|
|
50
53
|
private actionHandlers: Map<string, (payload: any) => Promise<void>> = new Map();
|
|
51
54
|
|
|
@@ -55,6 +58,28 @@ class OfflineManagerClass {
|
|
|
55
58
|
public onOnlineRestore?: OfflineManagerConfig['onOnlineRestore'];
|
|
56
59
|
public isSyncing = false;
|
|
57
60
|
|
|
61
|
+
// βββ Network Status State βββ
|
|
62
|
+
private _isOnline: boolean | null = null;
|
|
63
|
+
|
|
64
|
+
public get isOnline(): boolean | null {
|
|
65
|
+
return this._isOnline;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
public setOnline(online: boolean) {
|
|
69
|
+
if (this._isOnline === online) return; // no change, no re-render
|
|
70
|
+
this._isOnline = online;
|
|
71
|
+
this.networkListeners.forEach((l) => l());
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
public subscribeNetwork = (listener: () => void): (() => void) => {
|
|
75
|
+
this.networkListeners.add(listener);
|
|
76
|
+
return () => this.networkListeners.delete(listener);
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
public getNetworkSnapshot = (): boolean | null => {
|
|
80
|
+
return this._isOnline;
|
|
81
|
+
};
|
|
82
|
+
|
|
58
83
|
// βββ Sync Progress State βββ
|
|
59
84
|
private _syncProgress: SyncProgress = { ...INITIAL_SYNC_PROGRESS };
|
|
60
85
|
|