UNPKG

kafkajs

Version:

A modern Apache Kafka client for node.js

42 lines (37 loc) 1.2 kB
const Encoder = require('../../../encoder') const { OffsetCommit: apiKey } = require('../../apiKeys') /** * OffsetCommit Request (Version: 2) => group_id group_generation_id member_id retention_time [topics] * group_id => STRING * group_generation_id => INT32 * member_id => STRING * retention_time => INT64 * topics => topic [partitions] * topic => STRING * partitions => partition offset metadata * partition => INT32 * offset => INT64 * metadata => NULLABLE_STRING */ module.exports = ({ groupId, groupGenerationId, memberId, retentionTime, topics }) => ({ apiKey, apiVersion: 2, apiName: 'OffsetCommit', encode: async () => { return new Encoder() .writeString(groupId) .writeInt32(groupGenerationId) .writeString(memberId) .writeInt64(retentionTime) .writeArray(topics.map(encodeTopic)) }, }) const encodeTopic = ({ topic, partitions }) => { return new Encoder().writeString(topic).writeArray(partitions.map(encodePartition)) } const encodePartition = ({ partition, offset, metadata = null }) => { return new Encoder() .writeInt32(partition) .writeInt64(offset) .writeString(metadata) }