UNPKG

4.73 kBTypeScriptView Raw
1import { Transport } from '../enums/transport.enum';
2import { ChannelOptions } from '../external/grpc-options.interface';
3import { ConsumerConfig, ConsumerRunConfig, ConsumerSubscribeTopic, KafkaConfig, ProducerConfig, ProducerRecord } from '../external/kafka.interface';
4import { MqttClientOptions } from '../external/mqtt-options.interface';
5import { ClientOpts } from '../external/redis.interface';
6import { RmqUrl } from '../external/rmq-url.interface';
7import { CustomTransportStrategy } from './custom-transport-strategy.interface';
8import { Deserializer } from './deserializer.interface';
9import { Serializer } from './serializer.interface';
10export declare type MicroserviceOptions = GrpcOptions | TcpOptions | RedisOptions | NatsOptions | MqttOptions | RmqOptions | KafkaOptions | CustomStrategy;
11export interface CustomStrategy {
12 strategy: CustomTransportStrategy;
13 options?: {};
14}
15export interface GrpcOptions {
16 transport?: Transport.GRPC;
17 options: {
18 url?: string;
19 maxSendMessageLength?: number;
20 maxReceiveMessageLength?: number;
21 maxMetadataSize?: number;
22 keepalive?: {
23 keepaliveTimeMs?: number;
24 keepaliveTimeoutMs?: number;
25 keepalivePermitWithoutCalls?: number;
26 http2MaxPingsWithoutData?: number;
27 http2MinTimeBetweenPingsMs?: number;
28 http2MinPingIntervalWithoutDataMs?: number;
29 http2MaxPingStrikes?: number;
30 };
31 channelOptions?: ChannelOptions;
32 credentials?: any;
33 protoPath: string | string[];
34 package: string | string[];
35 protoLoader?: string;
36 loader?: {
37 keepCase?: boolean;
38 alternateCommentMode?: boolean;
39 longs?: Function;
40 enums?: Function;
41 bytes?: Function;
42 defaults?: boolean;
43 arrays?: boolean;
44 objects?: boolean;
45 oneofs?: boolean;
46 json?: boolean;
47 includeDirs?: string[];
48 };
49 };
50}
51export interface TcpOptions {
52 transport?: Transport.TCP;
53 options?: {
54 host?: string;
55 port?: number;
56 retryAttempts?: number;
57 retryDelay?: number;
58 serializer?: Serializer;
59 deserializer?: Deserializer;
60 };
61}
62export interface RedisOptions {
63 transport?: Transport.REDIS;
64 options?: {
65 url?: string;
66 retryAttempts?: number;
67 retryDelay?: number;
68 serializer?: Serializer;
69 deserializer?: Deserializer;
70 } & ClientOpts;
71}
72export interface MqttOptions {
73 transport?: Transport.MQTT;
74 options?: MqttClientOptions & {
75 url?: string;
76 serializer?: Serializer;
77 deserializer?: Deserializer;
78 };
79}
80export interface NatsOptions {
81 transport?: Transport.NATS;
82 options?: {
83 encoding?: string;
84 url?: string;
85 name?: string;
86 user?: string;
87 pass?: string;
88 maxPingOut?: number;
89 maxReconnectAttempts?: number;
90 reconnectTimeWait?: number;
91 reconnectJitter?: number;
92 reconnectJitterTLS?: number;
93 reconnectDelayHandler?: any;
94 servers?: string[];
95 nkey?: any;
96 reconnect?: boolean;
97 pedantic?: boolean;
98 tls?: any;
99 queue?: string;
100 serializer?: Serializer;
101 deserializer?: Deserializer;
102 userJWT?: string;
103 nonceSigner?: any;
104 userCreds?: any;
105 useOldRequestStyle?: boolean;
106 pingInterval?: number;
107 preserveBuffers?: boolean;
108 waitOnFirstConnect?: boolean;
109 verbose?: boolean;
110 noEcho?: boolean;
111 noRandomize?: boolean;
112 timeout?: number;
113 token?: string;
114 yieldTime?: number;
115 tokenHandler?: any;
116 [key: string]: any;
117 };
118}
119export interface RmqOptions {
120 transport?: Transport.RMQ;
121 options?: {
122 urls?: string[] | RmqUrl[];
123 queue?: string;
124 prefetchCount?: number;
125 isGlobalPrefetchCount?: boolean;
126 queueOptions?: any;
127 socketOptions?: any;
128 noAck?: boolean;
129 serializer?: Serializer;
130 deserializer?: Deserializer;
131 replyQueue?: string;
132 persistent?: boolean;
133 };
134}
135export interface KafkaOptions {
136 transport?: Transport.KAFKA;
137 options?: {
138 postfixId?: string;
139 client?: KafkaConfig;
140 consumer?: ConsumerConfig;
141 run?: Omit<ConsumerRunConfig, 'eachBatch' | 'eachMessage'>;
142 subscribe?: Omit<ConsumerSubscribeTopic, 'topic'>;
143 producer?: ProducerConfig;
144 send?: Omit<ProducerRecord, 'topic' | 'messages'>;
145 serializer?: Serializer;
146 deserializer?: Deserializer;
147 };
148}