Loading files
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'
}
}
56ae2e47fThis file is pinned to the selected release. Download the original to open it in your design tool.