nestjs-resilience
Version:
A module for improving the reliability and fault-tolerance of your NestJS applications
20 lines (19 loc) • 810 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.ResilienceObservableCommand = void 0;
const base_command_1 = require("./base.command");
const rxjs_1 = require("rxjs");
const enum_1 = require("../enum");
class ResilienceObservableCommand extends base_command_1.BaseCommand {
execute(...args) {
this.eventBus.emit(enum_1.ResilienceEventType.Emit, this);
let observable = this.run(...args);
for (const strategy of this.strategies) {
observable = strategy.process(observable, this, ...args);
}
return observable.pipe((0, rxjs_1.catchError)(error => {
throw this.onFailure(error);
}), (0, rxjs_1.tap)(() => this.onSuccess()));
}
}
exports.ResilienceObservableCommand = ResilienceObservableCommand;
;