UNPKG

dashp

Version:

Utilities for monadic promises.

43 lines (32 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.retry5 = exports.retry4 = exports.retry3 = exports.retry2 = exports.retry = void 0; var _caught = _interopRequireDefault(require("./caught")); var _delay = _interopRequireDefault(require("./delay")); var _curry = require("./internal/curry"); var _namefn = _interopRequireDefault(require("./internal/namefn")); var _isPromise = _interopRequireDefault(require("./is-promise")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // times is 0-indexed. A times value of 4, actually makes 5 retries. const retrier = (times, waitTime) => (action, ...args) => { const delayModifier = 1.5; const f = (0, _isPromise.default)(action) ? () => action : action; const resolver = (iter, waitMs) => { if (iter <= 0) return f(...args); return (0, _caught.default)(() => (0, _delay.default)(waitMs, null).then(() => resolver(iter - 1, waitMs * delayModifier)), f(...args)); }; return resolver(times, waitTime); }; const retry = (0, _namefn.default)("retry", retrier(4, 250)); exports.retry = retry; const retry2 = (0, _curry.curry2)("retry2", retrier(4, 250)); exports.retry2 = retry2; const retry3 = (0, _curry.curry3)("retry3", retrier(4, 250)); exports.retry3 = retry3; const retry4 = (0, _curry.curry4)("retry4", retrier(4, 250)); exports.retry4 = retry4; const retry5 = (0, _curry.curry5)("retry5", retrier(4, 250)); exports.retry5 = retry5; //# sourceMappingURL=retry.js.map