"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.retry = void 0; function retry(func, retryMax, config = {}) { let retryNum = 0; const { retryDelay = 500, errorHandler = () => true } = config; const funcR = (...arg) => { return new Promise((resolve, reject) => { func(...arg) .then(result => { retryNum = 0; resolve(result); }) .catch(err => { if (retryNum < retryMax && errorHandler(err)) { retryNum++; setTimeout(() => { resolve(funcR(...arg)); }, retryDelay); } else { retryNum = 0; reject(err); } }); }); }; return funcR; } exports.retry = retry;