universal-queues
Version:
Factory universal para mensageria (RabbitMQ, Kafka, SQS) para sistemas distribuĂdos.
28 lines • 951 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Retry = Retry;
function Retry(retries = 3, delayMs = 1000, onError) {
return function (_target, _propertyKey, descriptor) {
const originalMethod = descriptor.value;
descriptor.value = async function (...args) {
let attempt = 0;
let lastError;
while (attempt < retries) {
try {
return await originalMethod.apply(this, args);
}
catch (e) {
attempt++;
lastError = e;
if (onError)
onError(e, attempt);
if (attempt < retries)
await new Promise(res => setTimeout(res, delayMs));
}
}
throw lastError;
};
return descriptor;
};
}
//# sourceMappingURL=retry.js.map