@duongtrungnguyen/nestro
Version:
Service registry for Nest JS
45 lines • 1.68 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __decorateClass = (decorators, target, key, kind) => {
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
for (var i = decorators.length - 1, decorator; i >= 0; i--)
if (decorator = decorators[i])
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
if (kind && result) __defProp(target, key, result);
return result;
};
import { Module } from "@nestjs/common";
import { DEFAULT_LOAD_BALANCING_REFRESH_INTERVAL, DEFAULT_LOAD_BALANCING_STRATEGY, LOAD_BALANCER, LOAD_BALANCING_CONFIGS } from "./constants";
import { DiscoveryService } from "./services";
import { LoadBalancingFactory } from "./loadbalancing";
let DiscoveryModule = class {
static register(config) {
const loadBalancingConfigProvider = {
provide: LOAD_BALANCING_CONFIGS,
useValue: {
...config,
strategy: config.strategy || DEFAULT_LOAD_BALANCING_STRATEGY,
refreshInterval: config.refreshInterval || DEFAULT_LOAD_BALANCING_REFRESH_INTERVAL
}
};
const loadBalancerProvider = {
provide: LOAD_BALANCER,
useFactory: (options) => {
return LoadBalancingFactory.getStrategy(options.strategy);
},
inject: [LOAD_BALANCING_CONFIGS]
};
return {
module: DiscoveryModule,
providers: [loadBalancingConfigProvider, loadBalancerProvider, DiscoveryService],
exports: [DiscoveryService]
};
}
};
DiscoveryModule = __decorateClass([
Module({})
], DiscoveryModule);
export {
DiscoveryModule
};
//# sourceMappingURL=discovery.module.js.map