Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
dadec189aThis file is pinned to the selected release. Download the original to open it in your design tool.
export class AppError extends Error {
constructor(
public message: string,
public statusCode: number = 500,
public code?: string
) {
super(message)
this.name = 'AppError'
Error.captureStackTrace(this, this.constructor)
}
}
export class NotFoundError extends AppError {
constructor(resource: string) {
super(`${resource} not found`, 404, 'NOT_FOUND')
this.name = 'NotFoundError'
}
}
export class ValidationError extends AppError {
constructor(message: string) {
super(message, 400, 'VALIDATION_ERROR')
this.name = 'ValidationError'
}
}
export class UnauthorizedError extends AppError {
constructor(message = 'Unauthorized') {
super(message, 401, 'UNAUTHORIZED')
this.name = 'UnauthorizedError'
}
}
export class ForbiddenError extends AppError {
constructor(message = 'Forbidden') {
super(message, 403, 'FORBIDDEN')
this.name = 'ForbiddenError'
}
}
export class ConflictError extends AppError {
constructor(message: string) {
super(message, 409, 'CONFLICT')
this.name = 'ConflictError'
}
}
export class InternalError extends AppError {
constructor(message = 'Internal server error') {
super(message, 500, 'INTERNAL_ERROR')
this.name = 'InternalError'
}
}