From 5918ddbfeb210ddcb393f732152312d007feb0ec Mon Sep 17 00:00:00 2001 From: Michael Kaufman <2073135+mkaufmaner@users.noreply.github.com> Date: Mon, 6 May 2024 07:22:48 -0400 Subject: [PATCH 1/5] fix: update message header type to match The existing MessageHeader type is just a plain object and not an array of plain objects. --- types/rdkafka.d.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/types/rdkafka.d.ts b/types/rdkafka.d.ts index 4c9150e9..50e76d91 100644 --- a/types/rdkafka.d.ts +++ b/types/rdkafka.d.ts @@ -96,7 +96,8 @@ 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 MessageHeader = string | Buffer; +export type MessageHeaders = { [key: string]: MessageHeader }; export type MessageValue = Buffer | null; export type SubscribeTopic = string | RegExp; export type SubscribeTopicList = SubscribeTopic[]; @@ -107,7 +108,7 @@ export interface Message extends TopicPartitionOffset { topic: string; key?: MessageKey; timestamp?: number; - headers?: MessageHeader[]; + headers?: MessageHeaders; opaque?: any; } @@ -265,7 +266,7 @@ export class Producer extends Client<KafkaProducerEvents> { 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?: MessageHeaders): any; setPollInterval(interval: number): this; @@ -284,7 +285,7 @@ export class Producer extends Client<KafkaProducerEvents> { 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: MessageHeaders, 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<MessageKey>): void; From d0277e3d4b263b1c395b0ce3fa9851100dedd77c Mon Sep 17 00:00:00 2001 From: Michael Kaufman <2073135+mkaufmaner@users.noreply.github.com> Date: Mon, 6 May 2024 07:26:00 -0400 Subject: [PATCH 2/5] fix: add null to message header type --- types/rdkafka.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/rdkafka.d.ts b/types/rdkafka.d.ts index 50e76d91..521763ac 100644 --- a/types/rdkafka.d.ts +++ b/types/rdkafka.d.ts @@ -96,7 +96,7 @@ export interface DeliveryReport extends TopicPartitionOffset { export type NumberNullUndefined = number | null | undefined; export type MessageKey = Buffer | string | null | undefined; -export type MessageHeader = string | Buffer; +export type MessageHeader = Buffer | string | null; export type MessageHeaders = { [key: string]: MessageHeader }; export type MessageValue = Buffer | null; export type SubscribeTopic = string | RegExp; From 8bcea2de70351aec4d7e2baf3b403a7859f926f9 Mon Sep 17 00:00:00 2001 From: Michael Kaufman <2073135+mkaufmaner@users.noreply.github.com> Date: Mon, 6 May 2024 08:31:21 -0400 Subject: [PATCH 3/5] fix: update message header types --- types/rdkafka.d.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/types/rdkafka.d.ts b/types/rdkafka.d.ts index 521763ac..865cf9bd 100644 --- a/types/rdkafka.d.ts +++ b/types/rdkafka.d.ts @@ -96,8 +96,9 @@ export interface DeliveryReport extends TopicPartitionOffset { export type NumberNullUndefined = number | null | undefined; export type MessageKey = Buffer | string | null | undefined; -export type MessageHeader = Buffer | string | null; -export type MessageHeaders = { [key: string]: MessageHeader }; +export type MessageHeaderValue = Buffer | string | number | null; +export type MessageHeader = Record<string, MessageHeaderValue>; +export type MessageHeaderList = MessageHeader[]; export type MessageValue = Buffer | null; export type SubscribeTopic = string | RegExp; export type SubscribeTopicList = SubscribeTopic[]; @@ -108,7 +109,7 @@ export interface Message extends TopicPartitionOffset { topic: string; key?: MessageKey; timestamp?: number; - headers?: MessageHeaders; + headers?: MessageHeaderList; opaque?: any; } @@ -266,7 +267,7 @@ export class Producer extends Client<KafkaProducerEvents> { poll(): this; - produce(topic: string, partition: NumberNullUndefined, message: MessageValue, key?: MessageKey, timestamp?: NumberNullUndefined, opaque?: any, headers?: MessageHeaders): any; + produce(topic: string, partition: NumberNullUndefined, message: MessageValue, key?: MessageKey, timestamp?: NumberNullUndefined, opaque?: any, headers?: MessageHeaderList): any; setPollInterval(interval: number): this; @@ -285,7 +286,7 @@ export class Producer extends Client<KafkaProducerEvents> { 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: MessageHeaders, 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<MessageKey>): void; From b92553a96bcc60dc4c6c23f26e52ddcb489ff25c Mon Sep 17 00:00:00 2001 From: Michael Kaufman <mkaufmaner@gmail.com> Date: Tue, 7 May 2024 08:14:40 -0400 Subject: [PATCH 4/5] fix: update header typing for nulls and numbers --- .eslintrc.js | 1 + types/kafkajs.d.ts | 2 +- types/rdkafka.d.ts | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) 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 865cf9bd..1d03174e 100644 --- a/types/rdkafka.d.ts +++ b/types/rdkafka.d.ts @@ -98,7 +98,7 @@ export type NumberNullUndefined = number | null | undefined; export type MessageKey = Buffer | string | null | undefined; export type MessageHeaderValue = Buffer | string | number | null; export type MessageHeader = Record<string, MessageHeaderValue>; -export type MessageHeaderList = MessageHeader[]; +export type MessageHeaderList = MessageHeader[] | null | undefined; export type MessageValue = Buffer | null; export type SubscribeTopic = string | RegExp; export type SubscribeTopicList = SubscribeTopic[]; From 48550b96d480c434d7a1e6582e8653792b020743 Mon Sep 17 00:00:00 2001 From: Michael Kaufman <mkaufmaner@gmail.com> Date: Wed, 15 May 2024 09:26:52 -0400 Subject: [PATCH 5/5] fix: remove number from message header type --- types/rdkafka.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/rdkafka.d.ts b/types/rdkafka.d.ts index 1d03174e..894d8864 100644 --- a/types/rdkafka.d.ts +++ b/types/rdkafka.d.ts @@ -96,7 +96,7 @@ export interface DeliveryReport extends TopicPartitionOffset { export type NumberNullUndefined = number | null | undefined; export type MessageKey = Buffer | string | null | undefined; -export type MessageHeaderValue = Buffer | string | number | null; +export type MessageHeaderValue = Buffer | string | null; export type MessageHeader = Record<string, MessageHeaderValue>; export type MessageHeaderList = MessageHeader[] | null | undefined; export type MessageValue = Buffer | null;