Source: Category.js

/** Class representing a category of commands. */
class Category {
  /**
   * Create a category.
   * @param {string} name - The name of category.
   * @param {string} [help = `Help for ${this.name} category`]  - Help description
   * @param {object} options - Help description
   * @param {object} [options.hide = false] - Hide when use default help command
   */
  constructor(name, help, options = {}) {
    if (!name) {
      throw new Error('Name is required');
    }
    this.name = name;
    this.help = help || `Help for ${this.name} category`;
    this.hide = options.hide || false;
    for (const opt in options) {
      /* eslint no-restricted-syntax : "off" */
      if (!this.hasOwnProperty(opt)) {
        /* eslint no-prototype-builtins : "off" */
        this[opt] = options[opt];
      }
    }
  }
}

module.exports = Category;