UNPKG

vue-admin-core

Version:
44 lines (42 loc) 963 B
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); } } }; }; export { useRetryPlugin as default }; //# sourceMappingURL=useRetryPlugin.mjs.map