Structures_BaseClass.js

'user strict'
const Discord = require('discord.js')
const { ErrorCodes } = require('../Errors/ErrorCodes')
const { MissingValue, InvalidValue } = require('../Errors/LME')

/**
 * Base class for all the Structures.
 */
class BaseClass {
  /** @type {Discord.Client} - Discord Client */
  client

  /**
   * @param {Discord.Client} client - Discord client
   */
  constructor (client) {
    if (!client) throw new MissingValue(ErrorCodes.MissingArgument, 'client')

    if (!(client instanceof Discord.Client)) throw new InvalidValue(ErrorCodes.InvalidValue, 'Client', 'a Discord Client instance')

    this.client = client
  }
}

module.exports = { BaseClass }