@digoai/piatti-common
Version:
Librería común para proyectos NestJS con módulos reutilizables y servicios para facilitar el desarrollo de aplicaciones
49 lines (48 loc) • 1.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createDefaultTransportModule = exports.TransportClientModule = void 0;
const microservices_1 = require("@nestjs/microservices");
const transport_constants_1 = require("./transport.constants");
class TransportClientModule {
static register(options) {
const clientProviders = options.clients.map((client) => ({
name: client.name || transport_constants_1.TRANSPORT_CLIENT,
transport: client.transport,
options: client.options,
}));
return microservices_1.ClientsModule.register(clientProviders);
}
static registerAsync(options) {
return {
module: microservices_1.ClientsModule,
imports: [
microservices_1.ClientsModule.registerAsync([
{
name: transport_constants_1.TRANSPORT_CLIENT,
useFactory: async (...args) => {
const config = await options.useFactory(...args);
return config.clients[0] || {};
},
inject: options.inject,
},
]),
],
global: options.isGlobal,
};
}
}
exports.TransportClientModule = TransportClientModule;
const createDefaultTransportModule = (servers) => {
return TransportClientModule.register({
clients: [
{
name: transport_constants_1.TRANSPORT_CLIENT,
transport: microservices_1.Transport.NATS,
options: {
servers,
},
},
],
});
};
exports.createDefaultTransportModule = createDefaultTransportModule;