Source: topic.js

/*
 * node-rdkafka - Node.js wrapper for RdKafka C/C++ library
 *
 * Copyright (c) 2016 Blizzard Entertainment
 *
 * This software may be modified and distributed under the terms
 * of the MIT license.  See the LICENSE.txt file for details.
 */

var librdkafka = require('../librdkafka');

module.exports = Topic;

var topicKey = 'RdKafka::Topic::';
var topicKeyLength = topicKey.length;

// Take all of the topic special codes from librdkafka and add them
// to the object
// You can find this list in the C++ code at
// https://github.com/edenhill/librdkafka/blob/master/src-cpp/rdkafkacpp.h#L1250
for (var key in librdkafka.topic) {
  // Skip it if it doesn't start with ErrorCode
  if (key.indexOf('RdKafka::Topic::') !== 0) {
    continue;
  }

  // Replace/add it if there are any discrepancies
  var newKey = key.substring(topicKeyLength);
  Topic[newKey] = librdkafka.topic[key];
}

/**
 * Create a topic. Just returns the string you gave it right now.
 *
 * Looks like a class, but all it does is return the topic name.
 * This is so that one day if there are interface changes that allow
 * different use of topic parameters, we can just add to this constructor and
 * have it return something richer
 */
function Topic(topicName) {
  return topicName;
}