/** * HTTP error class with status code * * @example * ``` * // Throw 404 error with default message * throw new HttpError(404) * throw new HttpError(HttpStatusCodes.NOT_FOUND) * * // Throw 404 error with custom message * throw new HttpError(404, 'X not found') * throw new HttpError(HttpStatusCodes.NOT_FOUND, 'X not found') * * // Throw 500 error and expose custom message to user * throw new HttpError(HttpStatusCodes.INTERNAL_SERVER_ERROR, 'Missing configuration', {expose: true}) * * // Handle HttpError * if (err instanceof HttpError) { * console.log(err.message) * return err.publicMessage * } * ``` * @group Http */ export declare class HttpError extends Error { /** * Should error message be exposed to the user */ expose: boolean; /** * HTTP status code */ status: number; /** * `this.message` if `this.status` is `true` else message from [[HttpStatusReasons]] is used */ publicMessage: string; /** * @throws `Error` if status is not supported * @param status HTTP [status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status) * @param message error message, if not provided message from [[HttpStatusReasons]] is used * @param properties additional configuration */ constructor(status: number, message?: string, properties?: { /** * Should error message be exposed to the user */ expose: boolean; }); }