UNPKG

vue-admin-core

Version:
48 lines (44 loc) 1.04 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); const useRetryPlugin = (fetchInstance, { retryInterval, retryCount }) => { let timer = 0; let count = 0; let triggerByRetry = false; if (!retryCount) { return {}; } return { onBefore: () => { if (!triggerByRetry) { count = 0; } triggerByRetry = false; if (timer) { clearTimeout(timer); } }, onSuccess: () => { count = 0; }, onError: () => { count += 1; if (retryCount === -1 || count <= retryCount) { const timeout = retryInterval != null ? retryInterval : Math.min(1e3 * 2 ** count, 3e4); timer = setTimeout(() => { triggerByRetry = true; fetchInstance.refresh(); }, timeout); } else { count = 0; } }, onCancel: () => { count = 0; if (timer) { clearTimeout(timer); } } }; }; exports.default = useRetryPlugin; //# sourceMappingURL=useRetryPlugin.js.map