text: import httpStatus from 'http-status';
  
  /**
   * @extends Error
   */
  export class BaseError extends Error {
    constructor(message, status, isPublic) {
      super(message);
  
      this.name = this.constructor.name;
      this.message = message;
      this.status = status;
      this.isPublic = isPublic;
      this.isOperational = true;	// This is required since bluebird 4 doesn't append it anymore.
  
      Error.captureStackTrace(this, this.constructor.name);
    }
  }
  
  /**
   * Class representing an API error.
   * @extends BaseError
   */
  export class APIError extends BaseError {
    /**
     * Creates an API error.
     * @param {string} message - Error message.
     * @param {number} status - HTTP status code of error.
     * @param {boolean} isPublic - Whether the message should be visible to user or not.
     */
    constructor(message, status = httpStatus.INTERNAL_SERVER_ERROR, isPublic = false) {
      super(message, status, isPublic);
    }
  }
  