All files error.ts

100% Statements 10/10
100% Branches 0/0
100% Functions 6/6
100% Lines 9/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83              1x 2x                 1x                             1x                       1x                 1x 1x                   1x                             1x      
/**
 * Ошибка, которую можно преобразовать в JSON
 *
 * @export
 * @class ExtendedError
 * @extends {Error}
 */
export class ExtendedError extends Error {
  name = this.constructor.name;
 
  /**
   *
   *
   * @return {*}  {Error}
   * @memberof ExtendedError
   */
  toJSON(): Error {
    return {
      message: this.message,
      name: this.name,
      stack: this.stack
    };
  }
 
  /**
   *
   *
   * @readonly
   * @type {string}
   * @memberof ExtendedError
   */
  get [Symbol.toStringTag](): string {
    return this.name;
  }
}
 
/**
 *
 *
 * @export
 * @class ErrorWithCode
 * @extends {ExtendedError}
 * @template CodeType
 */
export class ErrorWithCode<
  CodeType extends string | number = string | number
> extends ExtendedError {
  /**
   * Creates an instance of ErrorWithCode.
   * @param {string} message
   * @param {CodeType} code
   * @memberof ErrorWithCode
   */
  constructor(public message: string, public code: CodeType) {
    super(message);
  }
 
  /**
   *
   *
   * @return {*}  {(Error & { code: CodeType })}
   * @memberof ErrorWithCode
   */
  toJSON(): Error & { code: CodeType } {
    return {
      message: this.message,
      name: this.name,
      stack: this.stack,
      code: this.code
    };
  }
 
  /**
   *
   *
   * @return {*}  {string}
   * @memberof ErrorWithCode
   */
  toString(): string {
    return `[Error ${this.name}; CODE=${this.code}]`;
  }
}