UNPKG

rx-retry

Version:

Package for retries in RxJS, Promises and NestJS

58 lines 2.81 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.RxRetryService = void 0; const common_1 = require("@nestjs/common"); const operators_1 = require("../operators"); const promises_1 = require("../promises"); const rx_retry_module_builder_1 = require("./rx-retry.module-builder"); let RxRetryService = class RxRetryService { constructor(mainConfig) { this.mainConfig = mainConfig; } /** * Resolve promise with exponential backoff retry. Read documetation for more info. * @param promise - Promise to resolve * @param config - Override the main config - only selected fields * @returns Resolved value of the promise with type T (Generic) */ resolveWithRetry(promise, config) { const setConfig = config ? { ...this.mainConfig, ...config, retryStrategy: { ...this.mainConfig.retryStrategy, ...(config?.retryStrategy ?? {}) }, } : this.mainConfig; return (0, promises_1.resolveWithRetry)(promise, setConfig); } /** * An operator in a pipe that retries an Observable with exponential backoff. Read documetation for more info. * Will look only for the retryStrategy in the main config. * @param config - Override the main config - only selected fields */ resolveWithRetryOperator(config) { const setConfig = config ? { ...(this.mainConfig?.retryStrategy ?? {}), ...config } : this.mainConfig?.retryStrategy; return (0, operators_1.retryBackoff)(setConfig); } }; RxRetryService = __decorate([ (0, common_1.Injectable)(), __param(0, (0, common_1.Inject)(rx_retry_module_builder_1.MODULE_OPTIONS_TOKEN)), __metadata("design:paramtypes", [Object]) ], RxRetryService); exports.RxRetryService = RxRetryService; //# sourceMappingURL=rx-retry.service.js.map