use-offline-queue
Advanced tools
Comparing version 0.2.0-beta.2 to 0.2.0-beta.3
@@ -6,9 +6,9 @@ export interface Config { | ||
export declare const useOfflineQueue: (config?: Partial<Config> | undefined) => { | ||
dequeue: () => void; | ||
dequeueAsync: () => Promise<void>; | ||
dequeueSync: () => Promise<void>; | ||
dequeueAll: () => void; | ||
dequeueAllAsync: () => Promise<void>; | ||
enqueue: (callback: Function) => any; | ||
getQueue: () => Function[]; | ||
isEmpty: () => boolean; | ||
queue: Function[]; | ||
isOnline: boolean; | ||
peek: () => Function; | ||
}; |
@@ -56,4 +56,8 @@ "use strict"; | ||
}; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var react_1 = require("react"); | ||
var use_force_update_1 = __importDefault(require("use-force-update")); | ||
var initialConfig = { | ||
@@ -69,2 +73,3 @@ isQueueAsync: false, | ||
var queueRef = react_1.useRef([]); | ||
var forceUpdate = use_force_update_1.default(); | ||
react_1.useEffect(function () { | ||
@@ -79,3 +84,4 @@ addEventListener('online', onOnline); | ||
var clearQueue = function () { | ||
queueRef.current = []; | ||
queueRef.current.length = 0; | ||
forceUpdate(); | ||
}; | ||
@@ -85,24 +91,28 @@ var createOfflineTimeout = function () { | ||
}; | ||
var dequeue = function () { | ||
var dequeueAll = function () { | ||
if (isQueueAsync) { | ||
dequeueAsync(); | ||
dequeueAllAsync(); | ||
} | ||
else { | ||
dequeueSync(); | ||
queueRef.current.forEach(function (callback) { return callback(); }); | ||
clearQueue(); | ||
} | ||
}; | ||
var dequeueAsync = function () { return __awaiter(void 0, void 0, void 0, function () { | ||
var _i, _a, callback; | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
var dequeueAllAsync = function () { return __awaiter(void 0, void 0, void 0, function () { | ||
var callbacks, _i, callbacks_1, callback; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
_i = 0, _a = queueRef.current; | ||
_b.label = 1; | ||
callbacks = __spreadArrays(queueRef.current); | ||
_i = 0, callbacks_1 = callbacks; | ||
_a.label = 1; | ||
case 1: | ||
if (!(_i < _a.length)) return [3 /*break*/, 4]; | ||
callback = _a[_i]; | ||
if (!(_i < callbacks_1.length)) return [3 /*break*/, 4]; | ||
callback = callbacks_1[_i]; | ||
return [4 /*yield*/, callback()]; | ||
case 2: | ||
_b.sent(); | ||
_b.label = 3; | ||
_a.sent(); | ||
queueRef.current.shift(); | ||
forceUpdate(); | ||
_a.label = 3; | ||
case 3: | ||
@@ -117,9 +127,2 @@ _i++; | ||
}); }; | ||
var dequeueSync = function () { return __awaiter(void 0, void 0, void 0, function () { | ||
return __generator(this, function (_a) { | ||
queueRef.current.forEach(function (callback) { return callback(); }); | ||
clearQueue(); | ||
return [2 /*return*/]; | ||
}); | ||
}); }; | ||
var enqueue = function (callback) { | ||
@@ -131,5 +134,5 @@ if (isOnline) { | ||
timeoutInMS && createOfflineTimeout(); | ||
queueRef.current = __spreadArrays(queueRef.current, [callback]); | ||
queueRef.current.push(callback); | ||
}; | ||
var getQueue = function () { return queueRef.current; }; | ||
var isEmpty = function () { return queueRef.current.length === 0; }; | ||
var onOffline = function () { | ||
@@ -145,11 +148,11 @@ setIsOnline(false); | ||
offlineTimeoutRef.current && clearTimeout(offlineTimeoutRef.current); | ||
queueRef.current.length > 0 && dequeue(); | ||
queueRef.current.length > 0 && dequeueAll(); | ||
}; | ||
var peek = function () { return queueRef.current[0]; }; | ||
return { | ||
dequeue: dequeue, | ||
dequeueAsync: dequeueAsync, | ||
dequeueSync: dequeueSync, | ||
dequeueAll: dequeueAll, | ||
dequeueAllAsync: dequeueAllAsync, | ||
enqueue: enqueue, | ||
getQueue: getQueue, | ||
isEmpty: isEmpty, | ||
queue: queueRef.current, | ||
isOnline: isOnline, | ||
@@ -156,0 +159,0 @@ peek: peek, |
{ | ||
"name": "use-offline-queue", | ||
"version": "0.2.0-beta.2", | ||
"version": "0.2.0-beta.3", | ||
"description": "React hook which allows to put functions in a queue in offline mode", | ||
@@ -49,3 +49,6 @@ "main": "./lib/index.js", | ||
}, | ||
"typings": "./lib/index.d.ts" | ||
"typings": "./lib/index.d.ts", | ||
"dependencies": { | ||
"use-force-update": "^1.0.7" | ||
} | ||
} |
10964
182
3
+ Addeduse-force-update@^1.0.7
+ Addedjs-tokens@4.0.0(transitive)
+ Addedloose-envify@1.4.0(transitive)
+ Addedreact@18.3.1(transitive)
+ Addeduse-force-update@1.0.11(transitive)