All files / mod/errors base-errors.ts

28.57% Statements 8/28
0% Branches 0/8
0% Functions 0/8
28.57% Lines 8/28

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 682x                         2x             2x               2x             2x                     2x             2x               2x            
export class VersedError extends Error {
  status: number; // e.g. 500 for internal server error
  code: string; // a unique identifier of this type of error
  data: object; // any extra data you want to log
 
  constructor(code: string, status: number, data: any) {
    super(code || "VersedError");
    this.code = code || "VersedError";
    this.status = status || 500;
    this.data = data || {};
  }
}
 
export class BadRequestError extends VersedError {
  constructor(extras?: any) {
    super("BadRequestError", 400, extras);
    Error.captureStackTrace(this, BadRequestError);
  }
}
 
export class UnauthorizedError extends VersedError {
  constructor(extras?: any) {
    super("UnauthorizedError", 401, extras);
    this.code = "UnauthorizedError";
    Error.captureStackTrace(this, UnauthorizedError);
  }
}
 
export class ForbiddenError extends VersedError {
  constructor(extras?: any) {
    super("ForbiddenError", 403, extras);
    Error.captureStackTrace(this, ForbiddenError);
  }
}
 
export class NotFoundError extends VersedError {
  /**
   * @param type - the kind of resource is not found, in Camel case. e.g. "User"
   * @param query - the query used when finding this resource. e.g. { userId: 1 }
   */
  constructor(type: string, query: any) {
    super("NotFoundError", 404, query);
    Error.captureStackTrace(this, NotFoundError);
  }
}
 
export class ConflictError extends VersedError {
  constructor(extras?: any) {
    super("ConflictError", 409, extras);
    Error.captureStackTrace(this, ConflictError);
  }
}
 
export class TooManyRequestError extends VersedError {
  constructor(extras?: any) {
    super("TooManyRequestError", 429, extras);
    this.code = "TooManyRequestError";
    Error.captureStackTrace(this, TooManyRequestError);
  }
}
 
export class InternalServerError extends VersedError {
  constructor(extras?: any) {
    super("InternalServerError", 500, extras);
    Error.captureStackTrace(this, InternalServerError);
  }
}