diff --git a/.eslintrc.js b/.eslintrc.js index 120e6804..35795ba2 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,5 +1,6 @@ module.exports = { "env": { + "node": true, "browser": true, "commonjs": true, "es2021": true diff --git a/types/kafkajs.d.ts b/types/kafkajs.d.ts index e182c4b6..07bb48f4 100644 --- a/types/kafkajs.d.ts +++ b/types/kafkajs.d.ts @@ -118,7 +118,7 @@ export interface ProducerConstructorConfig extends ProducerGlobalConfig { } export interface IHeaders { - [key: string]: Buffer | string | (Buffer | string)[] | undefined + [key: string]: Buffer | string | number | null | (Buffer | string | number)[] | undefined } export interface Message { diff --git a/types/rdkafka.d.ts b/types/rdkafka.d.ts index 4c9150e9..894d8864 100644 --- a/types/rdkafka.d.ts +++ b/types/rdkafka.d.ts @@ -96,7 +96,9 @@ export interface DeliveryReport extends TopicPartitionOffset { export type NumberNullUndefined = number | null | undefined; export type MessageKey = Buffer | string | null | undefined; -export type MessageHeader = { [key: string]: string | Buffer }; +export type MessageHeaderValue = Buffer | string | null; +export type MessageHeader = Record; +export type MessageHeaderList = MessageHeader[] | null | undefined; export type MessageValue = Buffer | null; export type SubscribeTopic = string | RegExp; export type SubscribeTopicList = SubscribeTopic[]; @@ -107,7 +109,7 @@ export interface Message extends TopicPartitionOffset { topic: string; key?: MessageKey; timestamp?: number; - headers?: MessageHeader[]; + headers?: MessageHeaderList; opaque?: any; } @@ -265,7 +267,7 @@ export class Producer extends Client { poll(): this; - produce(topic: string, partition: NumberNullUndefined, message: MessageValue, key?: MessageKey, timestamp?: NumberNullUndefined, opaque?: any, headers?: MessageHeader[]): any; + produce(topic: string, partition: NumberNullUndefined, message: MessageValue, key?: MessageKey, timestamp?: NumberNullUndefined, opaque?: any, headers?: MessageHeaderList): any; setPollInterval(interval: number): this; @@ -284,7 +286,7 @@ export class Producer extends Client { export class HighLevelProducer extends Producer { produce(topic: string, partition: NumberNullUndefined, message: any, key: any, timestamp: NumberNullUndefined, callback: (err: any, offset?: NumberNullUndefined) => void): any; - produce(topic: string, partition: NumberNullUndefined, message: any, key: any, timestamp: NumberNullUndefined, headers: MessageHeader[], callback: (err: any, offset?: NumberNullUndefined) => void): any; + produce(topic: string, partition: NumberNullUndefined, message: any, key: any, timestamp: NumberNullUndefined, headers: MessageHeaderList, callback: (err: any, offset?: NumberNullUndefined) => void): any; setKeySerializer(serializer: (key: any, cb: (err: any, key: MessageKey) => void) => void): void; setKeySerializer(serializer: (key: any) => MessageKey | Promise): void;