UNPKG

advanced-retry

Version:
57 lines (56 loc) 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.toErrorFilter = toErrorFilter; exports.allErrorFilter = allErrorFilter; exports.anyErrorFilter = anyErrorFilter; exports.noneErrorFilter = noneErrorFilter; function toErrorFilter(p) { if (typeof p === 'function') { return { canHandleError: p }; } return p; } /** * Creates a filter that requires all provided filters to pass * @param filters Array of filters or filter functions */ function allErrorFilter(filters) { return { canHandleError: (error, attempt, context) => { return filters.every(filter => { if (typeof filter === 'function') { return filter(error, attempt, context); } return filter.canHandleError(error, attempt, context); }); }, }; } /** * Creates a filter that requires any of the provided filters to pass * @param filters Array of filters or filter functions */ function anyErrorFilter(filters) { return { canHandleError: (error, attempt, context) => { return filters.some(filter => { if (typeof filter === 'function') { return filter(error, attempt, context); } return filter.canHandleError(error, attempt, context); }); }, }; } function noneErrorFilter(filters) { return { canHandleError: (error, attempt, context) => { return !filters.some(filter => { if (typeof filter === 'function') { return filter(error, attempt, context); } return filter.canHandleError(error, attempt, context); }); }, }; }