nestjs-eureka
Version:
A NestJS module that integrate eureka-js-client
65 lines • 2.9 kB
JavaScript
;
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 EurekaModule_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EurekaModule = void 0;
const common_1 = require("@nestjs/common");
const axios_1 = require("@nestjs/axios");
const client_provider_1 = require("./client/client.provider");
const discovery_provider_1 = require("./discovery/discovery.provider");
const register_provider_1 = require("./register/register.provider");
const discovery_service_1 = require("./discovery/discovery.service");
const DEFAULT_OPTIONS = { disable: true };
const DEFAULT_ASYNC_OPTIONS = { useFactory: () => DEFAULT_OPTIONS };
let EurekaModule = EurekaModule_1 = class EurekaModule {
static forRoot(options) {
return {
module: EurekaModule_1,
providers: [EurekaModule_1.createProvider(options || DEFAULT_OPTIONS)],
};
}
static forRootAsync(asyncOptions) {
return {
module: EurekaModule_1,
providers: [EurekaModule_1.createAsyncProvider(asyncOptions || DEFAULT_ASYNC_OPTIONS)],
};
}
static createProvider(options) {
return {
provide: client_provider_1.EUREKA_MODULE_OPTIONS,
useValue: options,
};
}
static createAsyncProvider(options) {
if (options.useFactory) {
return {
provide: client_provider_1.EUREKA_MODULE_OPTIONS,
useFactory: options.useFactory,
inject: options.inject || [],
};
}
if (options.useClass || options.useExisting) {
const inject = [(options.useClass || options.useExisting)];
return {
provide: client_provider_1.EUREKA_MODULE_OPTIONS,
useFactory: async (optionsFactory) => await optionsFactory.createEurekaOptions(),
inject,
};
}
throw new Error();
}
};
EurekaModule = EurekaModule_1 = __decorate([
(0, common_1.Module)({
imports: [axios_1.HttpModule],
providers: [client_provider_1.eurekaClientProvider, ...discovery_provider_1.discoveryProviders, register_provider_1.registerProvider],
exports: [axios_1.HttpModule, discovery_service_1.DiscoveryService],
})
], EurekaModule);
exports.EurekaModule = EurekaModule;
//# sourceMappingURL=eureka.module.js.map