Errors_ErrorCodes.js

'use strict'

// For JSDoc only
/**
 * @typedef {Object} DXPlusErrorCodes
 * @property {'RankPriorityUsed'} RankPriorityUsed - The priority of the rank is already used by another rank.
 * @property {'RankNotFound'} RankNotFound - The rank was not found in the guild.
 * @property {'AchievementInvalidProgress'} AchievementInvalidProgress - The progress of the achievement is not valid.
 * @property {'AchievementNegativeProgress'} AchievementNegativeProgress - The progress of the achievement is negative.
 * @property {'AchievementGraterProgress'} AchievementGraterProgress - The first element of the progress array must be less than the second element.
 * @property {'DuplicatedAchievement'} DuplicatedAchievement - The achievement is already in the guild.
 * @property {'AchievementNotFound'} AchievementNotFound - The achievement was not found in the guild.
 * @property {'BuilderInvalidNumber'} BuilderInvalidNumber - The number must be a positive integer.
 * @property {'EventMissingProperty'} EventMissingProperty - The event must have the required property.
 * @property {'InvalidValue'} InvalidValue - The value of the property is not valid.
 * @property {'InvalidDataArgument'} InvalidDataArgument - The data argument must be a object.
 * @property {'MissingArgument'} MissingArgument - The argument is missing.
 * @property {'MissingProperty'} MissingProperty - The property is missing.
 */

/** @type {DXPlusErrorCodes} */
const ErrorCodes = {
  // Rank Errors
  RankPriorityUsed: 'RankPriorityUsed',
  RankNotFound: 'RankNotFound',

  // Achievement Errors
  AchievementInvalidProgress: 'AchievementInvalidProgress',
  AchievementNegativeProgress: 'AchievementNegativeProgress',
  AchievementGraterProgress: 'AchievementGraterProgress',
  DuplicateAchievement: 'DuplicateAchievement',
  AchievementNotFound: 'AchievementNotFound',

  // Builders
  BuilderInvalidNumber: 'BuilderInvalidNumber',

  // LevelManager Events
  EventMissingProperty: 'EventMissingProperty',

  // General
  InvalidValue: 'InvalidValue',
  InvalidDataArgument: 'InvalidDataArgument',
  MissingArgument: 'MissingArgument',
  MissingProperty: 'MissingProperty'
}

module.exports = { ErrorCodes }