UNPKG

kafka-ts

Version:

**KafkaTS** is a Apache Kafka client library for Node.js. It provides both a low-level API for communicating directly with the Apache Kafka cluster and high-level APIs for publishing and subscribing to Kafka topics.

126 lines (123 loc) 4.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LIST_OFFSETS = void 0; const api_1 = require("../utils/api"); const error_1 = require("../utils/error"); /* ListOffsets Request (Version: 1) => replica_id [topics] replica_id => INT32 topics => name [partitions] name => STRING partitions => partition_index timestamp partition_index => INT32 timestamp => INT64 ListOffsets Response (Version: 1) => [topics] topics => name [partitions] name => STRING partitions => partition_index error_code timestamp offset partition_index => INT32 error_code => INT16 timestamp => INT64 offset => INT64 */ const LIST_OFFSETS_V1 = (0, api_1.createApi)({ apiKey: 2, apiVersion: 1, requestHeaderVersion: 1, responseHeaderVersion: 0, request: (encoder, data) => encoder .writeInt32(data.replicaId) .writeArray(data.topics, (encoder, topic) => encoder .writeString(topic.name) .writeArray(topic.partitions, (encoder, partition) => encoder.writeInt32(partition.partitionIndex).writeInt64(partition.timestamp))), response: (decoder) => { const result = { throttleTimeMs: 0, topics: decoder.readArray((decoder) => ({ name: decoder.readString(), partitions: decoder.readArray((decoder) => ({ partitionIndex: decoder.readInt32(), errorCode: decoder.readInt16(), timestamp: decoder.readInt64(), offset: decoder.readInt64(), leaderEpoch: -1, tags: {}, })), tags: {}, })), tags: {}, }; result.topics.forEach((topic) => { topic.partitions.forEach((partition) => { if (partition.errorCode) throw new error_1.KafkaTSApiError(partition.errorCode, null, result); }); }); return result; }, }); /* ListOffsets Request (Version: 8) => replica_id isolation_level [topics] _tagged_fields replica_id => INT32 isolation_level => INT8 topics => name [partitions] _tagged_fields name => COMPACT_STRING partitions => partition_index current_leader_epoch timestamp _tagged_fields partition_index => INT32 current_leader_epoch => INT32 timestamp => INT64 ListOffsets Response (Version: 8) => throttle_time_ms [topics] _tagged_fields throttle_time_ms => INT32 topics => name [partitions] _tagged_fields name => COMPACT_STRING partitions => partition_index error_code timestamp offset leader_epoch _tagged_fields partition_index => INT32 error_code => INT16 timestamp => INT64 offset => INT64 leader_epoch => INT32 */ exports.LIST_OFFSETS = (0, api_1.createApi)({ apiKey: 2, apiVersion: 8, fallback: LIST_OFFSETS_V1, requestHeaderVersion: 2, responseHeaderVersion: 1, request: (encoder, data) => encoder .writeInt32(data.replicaId) .writeInt8(data.isolationLevel) .writeCompactArray(data.topics, (encoder, topic) => encoder .writeCompactString(topic.name) .writeCompactArray(topic.partitions, (encoder, partition) => encoder .writeInt32(partition.partitionIndex) .writeInt32(partition.currentLeaderEpoch) .writeInt64(partition.timestamp) .writeTagBuffer()) .writeTagBuffer()) .writeTagBuffer(), response: (decoder) => { const result = { throttleTimeMs: decoder.readInt32(), topics: decoder.readCompactArray((decoder) => ({ name: decoder.readCompactString(), partitions: decoder.readCompactArray((decoder) => ({ partitionIndex: decoder.readInt32(), errorCode: decoder.readInt16(), timestamp: decoder.readInt64(), offset: decoder.readInt64(), leaderEpoch: decoder.readInt32(), tags: decoder.readTagBuffer(), })), tags: decoder.readTagBuffer(), })), tags: decoder.readTagBuffer(), }; result.topics.forEach((topic) => { topic.partitions.forEach((partition) => { if (partition.errorCode) throw new error_1.KafkaTSApiError(partition.errorCode, null, result); }); }); return result; }, });