UNPKG

@nodeflip/nest-axios-http

Version:

A NestJS module for simplified HTTP requests using Axios with dynamic configuration, logging, and interceptor support.

103 lines 3.77 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 HttpModule_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.HttpModule = void 0; const common_1 = require("@nestjs/common"); const axios_1 = require("@nestjs/axios"); const http_service_1 = require("./http.service"); let HttpModule = HttpModule_1 = class HttpModule { static getDynamicHttpModule(option) { const httpService = new http_service_1.HttpService(option); const providerName = option.serviceName || http_service_1.HttpService; return { module: HttpModule_1, providers: [ { provide: providerName, useValue: httpService, }, ], exports: [providerName], }; } static forFeature(options) { if (Array.isArray(options)) { const providers = options.map((option) => { const httpService = new http_service_1.HttpService(option); const providerName = option.serviceName || http_service_1.HttpService; return { provide: providerName, useValue: httpService, }; }); return { module: HttpModule_1, imports: [axios_1.HttpModule], providers, exports: [...providers], }; } else { return this.getDynamicHttpModule(options); } } static forRoot(config) { const httpService = new http_service_1.HttpService(config); return { global: true, module: HttpModule_1, imports: [axios_1.HttpModule], providers: [ { provide: http_service_1.HttpService, useValue: httpService, }, ], exports: [http_service_1.HttpService], }; } static forFeatureWithProvider(options) { const httpService = new http_service_1.HttpService(options); const providerName = options.serviceName; const provider = { provide: providerName, useValue: httpService, }; return { module: { module: HttpModule_1, providers: [provider], exports: [providerName, HttpModule_1], }, provider, }; } static forFeatureAsync(options) { const { serviceName = "HttpService", imports, inject, useFactory, } = options; const provider = { provide: serviceName, useFactory: async (...args) => { const config = await useFactory(...args); return new http_service_1.HttpService(config); }, inject: inject || [], }; return { module: HttpModule_1, imports: imports || [], providers: [provider], exports: [provider], }; } }; HttpModule = HttpModule_1 = __decorate([ (0, common_1.Module)({}) ], HttpModule); exports.HttpModule = HttpModule; //# sourceMappingURL=http.module.js.map