UNPKG

nestjs-eureka

Version:

A NestJS module that integrate eureka-js-client

36 lines 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.eurekaClientProvider = exports.EUREKA_MODULE_OPTIONS = void 0; const eureka_js_client_1 = require("eureka-js-client"); const ip = require("ip"); const client_logger_1 = require("./client.logger"); const myIp = ip.address(); exports.EUREKA_MODULE_OPTIONS = 'EUREKA_MODULE_OPTIONS'; exports.eurekaClientProvider = { provide: eureka_js_client_1.Eureka, useFactory: (options) => { if (!options || options.disable) { return undefined; } if (!options.eureka || !options.service) { throw new Error('EurekaModuleOptions has no eureka and service options'); } return getEurekaProvider(options); }, inject: [exports.EUREKA_MODULE_OPTIONS], }; function getEurekaProvider(options) { const host = options.service.host || myIp; return new eureka_js_client_1.Eureka({ instance: Object.assign({ instanceId: `${myIp}:${options.service.name}:${options.service.port}`, app: options.service.name, hostName: host, ipAddr: host, port: { '$': options.service.port, '@enabled': true, }, vipAddress: options.service.name.toLowerCase(), healthCheckUrl: `http://${host}:${options.service.port}/health`, homePageUrl: `http://${host}:${options.service.port}/`, statusPageUrl: `http://${host}:${options.service.port}/info`, dataCenterInfo: { 'name': 'MyOwn', '@class': 'com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo', }, metadata: {} }, options.instanceExtra), eureka: options.eureka, logger: options.clientLogger || new client_logger_1.ClientLogger(), }); } //# sourceMappingURL=client.provider.js.map