UNPKG

1.77 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.ClientProxyFactory = void 0;
4const transport_enum_1 = require("../enums/transport.enum");
5const client_grpc_1 = require("./client-grpc");
6const client_kafka_1 = require("./client-kafka");
7const client_mqtt_1 = require("./client-mqtt");
8const client_nats_1 = require("./client-nats");
9const client_redis_1 = require("./client-redis");
10const client_rmq_1 = require("./client-rmq");
11const client_tcp_1 = require("./client-tcp");
12/**
13 * @publicApi
14 */
15class ClientProxyFactory {
16 static create(clientOptions) {
17 if (this.isCustomClientOptions(clientOptions)) {
18 const { customClass, options } = clientOptions;
19 return new customClass(options);
20 }
21 const { transport, options } = clientOptions || {};
22 switch (transport) {
23 case transport_enum_1.Transport.REDIS:
24 return new client_redis_1.ClientRedis(options);
25 case transport_enum_1.Transport.NATS:
26 return new client_nats_1.ClientNats(options);
27 case transport_enum_1.Transport.MQTT:
28 return new client_mqtt_1.ClientMqtt(options);
29 case transport_enum_1.Transport.GRPC:
30 return new client_grpc_1.ClientGrpcProxy(options);
31 case transport_enum_1.Transport.RMQ:
32 return new client_rmq_1.ClientRMQ(options);
33 case transport_enum_1.Transport.KAFKA:
34 return new client_kafka_1.ClientKafka(options);
35 default:
36 return new client_tcp_1.ClientTCP(options);
37 }
38 }
39 static isCustomClientOptions(options) {
40 return !!options.customClass;
41 }
42}
43exports.ClientProxyFactory = ClientProxyFactory;