cloudevents
Version:
CloudEvents SDK for JavaScript
32 lines (31 loc) • 915 B
TypeScript
/// <reference types="node" />
import { CloudEventV1 } from "../..";
import { Message, Binding } from "..";
export { Kafka };
export type { KafkaMessage, KafkaEvent };
/**
* Bindings for Kafka transport
* @implements {@linkcode Binding}
*/
declare const Kafka: Binding<KafkaMessage<unknown>, KafkaMessage<string>>;
declare type Key = string | Buffer;
/**
* Extends the base Message type to include
* Kafka-specific fields
*/
interface KafkaMessage<T = string | Buffer | unknown> extends Message {
key: Key;
value: T;
timestamp?: string;
}
/**
* Extends the base CloudEventV1 interface to include a `partitionkey` field
* which is explicitly mapped to KafkaMessage#key
*/
interface KafkaEvent<T> extends CloudEventV1<T> {
/**
* Maps to KafkaMessage#key per
* https://github.com/cloudevents/spec/blob/v1.0.1/kafka-protocol-binding.md#31-key-mapping
*/
partitionkey: Key;
}