kafka-cascade
Version:
Message Reprocessing for KafkaJS
84 lines (83 loc) • 2.38 kB
TypeScript
interface ProducerInterface {
connect: () => Promise<any>;
disconnect: () => any;
send: (arg: KafkaProducerMessageInterface) => any;
}
interface ConsumerInterface {
connect: () => Promise<any>;
disconnect: () => any;
subscribe: (arg: {
topic: string | RegExp;
fromBeginning: boolean;
}) => Promise<any>;
run: (arg: ({
eachMessage: (msg: KafkaConsumerMessageInterface) => void;
})) => any;
stop: () => Promise<any>;
pause: () => Promise<any>;
resume: () => Promise<any>;
}
interface AdminInterface {
connect: () => Promise<any>;
disconnect: () => Promise<any>;
listTopics: () => Promise<string[]>;
createTopics: (arg: {
validateOnly?: boolean;
waitForLeaders?: boolean;
timeout?: number;
topics: {
topic: string;
numPartitions?: number;
}[];
}) => Promise<any>;
deleteTopics: (arg: {
topics: string[];
}) => any;
}
interface KafkaInterface {
producer: () => ProducerInterface;
consumer: ({ groupId: string }: {
groupId: any;
}) => ConsumerInterface;
admin: () => AdminInterface;
}
interface KafkaProducerMessageInterface {
topic: string;
offset?: number;
partition?: number;
messages: {
key?: string;
value: string;
headers?: {
cascadeMetadata?: string;
};
}[];
}
interface KafkaConsumerMessageInterface {
topic: string;
partition: number;
offset: number;
message: {
key?: string;
value: string;
headers?: {
cascadeMetadata?: string;
};
};
}
interface ProducerRoute {
status: string;
retryLevels: number;
timeoutLimit: number[];
batchLimit: number[];
levels: KafkaProducerMessageInterface[];
topics: string[];
}
interface CascadeMetadata {
status: string;
retries: number;
topicArr: string[];
}
declare type ServiceCallback = (msg: KafkaConsumerMessageInterface, resolve: RouteCallback, reject: RouteCallback) => void;
declare type RouteCallback = (msg: KafkaConsumerMessageInterface, status?: string) => void;
export { ProducerInterface, ConsumerInterface, AdminInterface, KafkaInterface, KafkaProducerMessageInterface, KafkaConsumerMessageInterface, ProducerRoute, CascadeMetadata, ServiceCallback, RouteCallback, };