@@ -22,7 +22,7 @@ export type {
22
22
* Bindings for Kafka transport
23
23
* @implements {@linkcode Binding }
24
24
*/
25
- const Kafka : Binding = {
25
+ const Kafka : Binding < KafkaMessage < unknown > , KafkaMessage < string > > = {
26
26
binary : toBinaryKafkaMessage ,
27
27
structured : toStructuredKafkaMessage ,
28
28
toEvent : deserializeKafkaMessage ,
@@ -35,9 +35,9 @@ type Key = string | Buffer;
35
35
* Extends the base Message type to include
36
36
* Kafka-specific fields
37
37
*/
38
- interface KafkaMessage < T = string > extends Message {
38
+ interface KafkaMessage < T = string | Buffer | unknown > extends Message {
39
39
key : Key
40
- value : T | string | Buffer | unknown
40
+ value : T
41
41
timestamp ?: string
42
42
}
43
43
@@ -61,7 +61,7 @@ interface KafkaEvent<T> extends CloudEventV1<T> {
61
61
* @param {KafkaEvent<T> } event The event to serialize
62
62
* @returns {KafkaMessage<T> } a KafkaMessage instance
63
63
*/
64
- function toBinaryKafkaMessage < T > ( event : CloudEventV1 < T > ) : KafkaMessage < T > {
64
+ function toBinaryKafkaMessage < T > ( event : CloudEventV1 < T > ) : KafkaMessage < T | undefined > {
65
65
// 3.2.1. Content Type
66
66
// For the binary mode, the header content-type property MUST be mapped directly
67
67
// to the CloudEvents datacontenttype attribute.
@@ -86,7 +86,7 @@ function toBinaryKafkaMessage<T>(event: CloudEventV1<T>): KafkaMessage<T> {
86
86
* @param {CloudEvent<T> } event the CloudEvent to be serialized
87
87
* @returns {KafkaMessage<T> } a KafkaMessage instance
88
88
*/
89
- function toStructuredKafkaMessage < T > ( event : CloudEventV1 < T > ) : KafkaMessage < T > {
89
+ function toStructuredKafkaMessage < T > ( event : CloudEventV1 < T > ) : KafkaMessage < string > {
90
90
if ( ( event instanceof CloudEvent ) && event . data_base64 ) {
91
91
// The event's data is binary - delete it
92
92
event = event . cloneWith ( { data : undefined } ) ;
0 commit comments