UNPKG

@prelude/function

Version:

Function module.

20 lines 758 B
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const sleep_js_1 = __importDefault(require("./sleep.js")); const eventually = async (f, { retry = _ => _ < 10, delay = 1000, predicate = _ => Boolean(_), reject = _ => { throw _; } } = {}) => { const before = Date.now(); let i = 0; while (retry(i++, Date.now() - before)) { const r = await f().catch(reject); if (predicate(r)) { return r; } await (0, sleep_js_1.default)(delay); } return reject(undefined); }; exports.default = eventually; //# sourceMappingURL=eventually.js.map