SPB Git

Repository Public MIT

errors.ts 1.1 KB 20 lines typescript

1export class ApiError extends Error {2  constructor(3    public status: number,4    public code: string,5    message: string,6    public details?: unknown,7    public headers?: Record<string, string>,8  ) {9    super(message);10    this.name = "ApiError";11  }12}13export const badRequest = (message: string, details?: unknown) => new ApiError(400, "bad_request", message, details);14export const unauthorized = (message = "Authentication is required. Send `Authorization: Bearer <token>`.", code = "unauthorized") =>15  new ApiError(401, code, message, undefined, { "WWW-Authenticate": 'Bearer realm="skills-registry"' });16export const forbidden = (message: string, code = "forbidden", details?: unknown) => new ApiError(403, code, message, details);17export const notFound = (what = "Resource") => new ApiError(404, "not_found", `${what} not found.`);18export const conflict = (message: string, code = "conflict", details?: unknown) => new ApiError(409, code, message, details);19export const unprocessable = (message: string, code = "validation_failed", details?: unknown) => new ApiError(422, code, message, details);20
Files main
Menu

Theme