@rafikidota/eidolon
Version:
Sometimes, the best way to solve your own problems is to help someone else.
80 lines • 3.54 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 NatsModule_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NatsModule = void 0;
const common_1 = require("@nestjs/common");
const config_1 = require("@nestjs/config");
const microservices_1 = require("@nestjs/microservices");
const config_2 = require("@nestjs/config");
const microservices_2 = require("@nestjs/microservices");
const nats_service_1 = require("./nats.service");
const env_1 = require("./env");
const env_2 = require("./env");
const constants_1 = require("../../constants");
const constants_2 = require("../../constants");
const constants_3 = require("../../constants");
let NatsModule = NatsModule_1 = class NatsModule {
static forRoot(options = {}) {
const { isGlobal = false } = options;
return {
module: NatsModule_1,
global: isGlobal,
imports: [
config_1.ConfigModule.forRoot({
load: [env_1.NatsEnvConfig],
validationSchema: env_2.NatsConfigValidationSchema,
}),
microservices_1.ClientsModule.registerAsync([
{
name: constants_1.NATS_SERVICE,
imports: [config_1.ConfigModule],
inject: [config_2.ConfigService],
useFactory: (service) => {
const envServers = service.get(constants_3.NATS_SERVERS_URL) || [];
const envServer = service.get(constants_2.NATS_SERVER_URL);
const servers = new Set(envServers);
if (envServer) {
servers.add(envServer);
}
return {
transport: microservices_2.Transport.NATS,
options: { servers: Array.from(servers) },
};
},
},
]),
],
exports: [nats_service_1.NatsService],
providers: [nats_service_1.NatsService],
};
}
static register(options) {
const { isGlobal = false, servers = [] } = options;
return {
module: NatsModule_1,
global: isGlobal,
imports: [
microservices_1.ClientsModule.register([
{
name: constants_1.NATS_SERVICE,
transport: microservices_2.Transport.NATS,
options: { servers },
},
]),
],
exports: [nats_service_1.NatsService],
providers: [nats_service_1.NatsService],
};
}
};
exports.NatsModule = NatsModule;
exports.NatsModule = NatsModule = NatsModule_1 = __decorate([
(0, common_1.Module)({})
], NatsModule);
//# sourceMappingURL=nats.module.js.map