UNPKG

@nestjs/microservices

Version:

Nest - modern, fast, powerful node.js web framework (@microservices)

40 lines (39 loc) 1.43 kB
import { Transport } from '../enums/transport.enum.js'; import { ClientGrpcProxy } from './client-grpc.js'; import { ClientKafka } from './client-kafka.js'; import { ClientMqtt } from './client-mqtt.js'; import { ClientNats } from './client-nats.js'; import { ClientRedis } from './client-redis.js'; import { ClientRMQ } from './client-rmq.js'; import { ClientTCP } from './client-tcp.js'; /** * @publicApi */ export class ClientProxyFactory { static create(clientOptions) { if (this.isCustomClientOptions(clientOptions)) { const { customClass, options } = clientOptions; return new customClass(options); } const { transport, options = {} } = clientOptions ?? { options: {} }; switch (transport) { case Transport.REDIS: return new ClientRedis(options); case Transport.NATS: return new ClientNats(options); case Transport.MQTT: return new ClientMqtt(options); case Transport.GRPC: return new ClientGrpcProxy(options); case Transport.RMQ: return new ClientRMQ(options); case Transport.KAFKA: return new ClientKafka(options); default: return new ClientTCP(options); } } static isCustomClientOptions(options) { return !!options.customClass; } }