/** * HTTP status failure with payload details. */export class HttpStatus extends Error { public readonly status: number; public readonly detail: string; /** * Create an HTTP status error. * @param status - HTTP status code. * @param detail - Error detail message. */ public constructor(status: number, detail: string) { super(detail); this.status = status; this.detail = detail; }} /** * Check whether a value is an HttpStatus instance. * @param value - Unknown error value. * @returns True if value is HttpStatus. */export const isHttpStatus = (value: unknown): value is HttpStatus => value instanceof HttpStatus; /** * Create a not-found HttpStatus error. * @param detail - Error detail message. * @returns HttpStatus instance. */export const notFound = (detail: string): HttpStatus => new HttpStatus(404, detail); /** * Create a bad-request HttpStatus error. * @param detail - Error detail message. * @returns HttpStatus instance. */export const badRequest = (detail: string): HttpStatus => new HttpStatus(400, detail); /** * Create a service-unavailable HttpStatus error. * @param detail - Error detail message. * @returns HttpStatus instance. */export const serviceUnavailable = (detail: string): HttpStatus => new HttpStatus(503, detail);
/**
* HTTP status failure with payload details.
*/
export class HttpStatus extends Error {
public readonly status: number;
public readonly detail: string;
/**
* Create an HTTP status error.
* @param status - HTTP status code.
* @param detail - Error detail message.
*/
public constructor(status: number, detail: string) {
super(detail);
this.status = status;
this.detail = detail;
}
}
/**
* Check whether a value is an HttpStatus instance.
* @param value - Unknown error value.
* @returns True if value is HttpStatus.
*/
export const isHttpStatus = (value: unknown): value is HttpStatus =>
value instanceof HttpStatus;
/**
* Create a not-found HttpStatus error.
* @param detail - Error detail message.
* @returns HttpStatus instance.
*/
export const notFound = (detail: string): HttpStatus => new HttpStatus(404, detail);
/**
* Create a bad-request HttpStatus error.
* @param detail - Error detail message.
* @returns HttpStatus instance.
*/
export const badRequest = (detail: string): HttpStatus => new HttpStatus(400, detail);
/**
* Create a service-unavailable HttpStatus error.
* @param detail - Error detail message.
* @returns HttpStatus instance.
*/
export const serviceUnavailable = (detail: string): HttpStatus => new HttpStatus(503, detail);