UNPKG

nestjs-resilience

Version:

A module for improving the reliability and fault-tolerance of your NestJS applications

20 lines (19 loc) 822 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ResilienceCommand = void 0; const base_command_1 = require("./base.command"); const rxjs_1 = require("rxjs"); const enum_1 = require("../enum"); class ResilienceCommand extends base_command_1.BaseCommand { execute(...args) { this.eventBus.emit(enum_1.ResilienceEventType.Emit, this); let observable = (0, rxjs_1.defer)(() => this.run(...args)); for (const strategy of this.strategies) { observable = strategy.process(observable, this, ...args); } return (0, rxjs_1.lastValueFrom)(observable.pipe((0, rxjs_1.catchError)(error => { throw this.onFailure(error); }), (0, rxjs_1.tap)(() => this.onSuccess()))); } } exports.ResilienceCommand = ResilienceCommand;