ts-retry
Version:
A little retry tool to execute a function until the function is successful. Can also bind a timeout to a function. This lib is usable in typescript, in javascript, in node, in SPA tools (rest, Vue, Svelte...) and browser (available in ESM and common js fo
24 lines (23 loc) • 884 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createExponetialDelay = createExponetialDelay;
exports.createMutiplicableDelay = createMutiplicableDelay;
exports.createRandomDelay = createRandomDelay;
function createExponetialDelay(initialDelay) {
const delay = ({ lastDelay }) => lastDelay !== undefined ? lastDelay * initialDelay : initialDelay;
return delay;
}
function createMutiplicableDelay(initialDelay, multiplicator) {
const delay = ({ currentTry }) => {
if (currentTry === 1) {
return initialDelay;
}
const actualMultiplicator = (currentTry - 1) * multiplicator;
return initialDelay * actualMultiplicator;
};
return delay;
}
function createRandomDelay(min, max) {
const multiplicator = max - min + 1;
return () => Math.floor(Math.random() * multiplicator + min);
}