payload
Version:
Node, React, Headless CMS and Application Framework built on Next.js
26 lines (24 loc) • 1.21 kB
JavaScript
export function calculateBackoffWaitUntil({ retriesConfig, totalTried }) {
let waitUntil = new Date();
if (typeof retriesConfig === 'object') {
if (retriesConfig.backoff) {
if (retriesConfig.backoff.type === 'fixed') {
waitUntil = retriesConfig.backoff.delay ? new Date(new Date().getTime() + retriesConfig.backoff.delay) : new Date();
} else if (retriesConfig.backoff.type === 'exponential') {
// 2 ^ (attempts - 1) * delay (current attempt is not included in totalTried, thus no need for -1)
const delay = retriesConfig.backoff.delay ? retriesConfig.backoff.delay : 0;
waitUntil = new Date(new Date().getTime() + Math.pow(2, totalTried) * delay);
}
}
}
/*
const differenceInMSBetweenNowAndWaitUntil = waitUntil.getTime() - new Date().getTime()
const differenceInSBetweenNowAndWaitUntil = differenceInMSBetweenNowAndWaitUntil / 1000
console.log('Calculated backoff', {
differenceInMSBetweenNowAndWaitUntil,
differenceInSBetweenNowAndWaitUntil,
retriesConfig,
totalTried,
})*/ return waitUntil;
}
//# sourceMappingURL=calculateBackoffWaitUntil.js.map