@@ -22,7 +22,7 @@ export type {
2222 * Bindings for Kafka transport
2323 * @implements {@linkcode Binding }
2424 */
25- const Kafka : Binding = {
25+ const Kafka : Binding < KafkaMessage < unknown > , KafkaMessage < string > > = {
2626 binary : toBinaryKafkaMessage ,
2727 structured : toStructuredKafkaMessage ,
2828 toEvent : deserializeKafkaMessage ,
@@ -35,9 +35,9 @@ type Key = string | Buffer;
3535 * Extends the base Message type to include
3636 * Kafka-specific fields
3737 */
38- interface KafkaMessage < T = string > extends Message {
38+ interface KafkaMessage < T = string | Buffer | unknown > extends Message {
3939 key : Key
40- value : T | string | Buffer | unknown
40+ value : T
4141 timestamp ?: string
4242}
4343
@@ -61,7 +61,7 @@ interface KafkaEvent<T> extends CloudEventV1<T> {
6161 * @param {KafkaEvent<T> } event The event to serialize
6262 * @returns {KafkaMessage<T> } a KafkaMessage instance
6363 */
64- function toBinaryKafkaMessage < T > ( event : CloudEventV1 < T > ) : KafkaMessage < T > {
64+ function toBinaryKafkaMessage < T > ( event : CloudEventV1 < T > ) : KafkaMessage < T | undefined > {
6565 // 3.2.1. Content Type
6666 // For the binary mode, the header content-type property MUST be mapped directly
6767 // to the CloudEvents datacontenttype attribute.
@@ -86,7 +86,7 @@ function toBinaryKafkaMessage<T>(event: CloudEventV1<T>): KafkaMessage<T> {
8686 * @param {CloudEvent<T> } event the CloudEvent to be serialized
8787 * @returns {KafkaMessage<T> } a KafkaMessage instance
8888 */
89- function toStructuredKafkaMessage < T > ( event : CloudEventV1 < T > ) : KafkaMessage < T > {
89+ function toStructuredKafkaMessage < T > ( event : CloudEventV1 < T > ) : KafkaMessage < string > {
9090 if ( ( event instanceof CloudEvent ) && event . data_base64 ) {
9191 // The event's data is binary - delete it
9292 event = event . cloneWith ( { data : undefined } ) ;
0 commit comments