UNPKG

@modern-kit/utils

Version:
37 lines (33 loc) 994 B
'use strict'; var validatorIsNumber = require('../../validator/isNumber/index.cjs'); var commonDelay = require('../delay/index.cjs'); const DEFAULT_RETRY = 3; const DEFAULT_DELAY = 0; const getRetryOptions = (options) => { if (validatorIsNumber.isNumber(options)) { return { count: options, delay: DEFAULT_DELAY, signal: void 0 }; } return { count: options?.count ?? DEFAULT_RETRY, delay: options?.delay ?? DEFAULT_DELAY, signal: options?.signal }; }; async function retry(func, options) { const { count, delay, signal } = getRetryOptions(options); let error; for (let i = 0; i < count; i++) { if (signal?.aborted) { throw new Error("aborted\uB85C \uC778\uD574 \uC7AC\uC2DC\uB3C4 \uC791\uC5C5\uC774 \uC911\uB2E8\uB418\uC5C8\uC2B5\uB2C8\uB2E4."); } try { return await func(); } catch (err) { error = err; await commonDelay.delay(delay); } } throw error; } exports.retry = retry; //# sourceMappingURL=index.cjs.map