@villedemontreal/general-utils
Version:
General utilities library
90 lines • 3.57 kB
TypeScript
import { ApiErrorAndInfo, IApiError, IApiInnerError } from './apiError';
import { LogLevel } from './logLevel';
/**
* Builder to create errors.
*/
export declare class ErrorBuilder {
private _code;
private _logMessage;
private _publicMessage;
private _target;
private _details;
private _innererror;
private _httpStatus;
private _logLevel;
private _logStackTrace;
/**
* Constructor
* The error node and log message are mandatory.
*/
constructor(code: string, logMessage: any);
publicMessage: (publicMessage: string) => ErrorBuilder;
target: (target: string) => ErrorBuilder;
details: (details: IApiError[]) => ErrorBuilder;
addDetail: (detail: IApiError) => ErrorBuilder;
innererror: (innererror: IApiInnerError) => ErrorBuilder;
httpStatus: (httpStatus: number) => ErrorBuilder;
logLevel: (logLevel: LogLevel) => ErrorBuilder;
logStackTrace: (logStackTrace: boolean) => ErrorBuilder;
/**
* Builds the error!
*/
build: () => ApiErrorAndInfo;
}
/**
* ErrorBuilder Type Guard
*/
export declare const isErrorBuilder: (obj: any) => obj is ErrorBuilder;
/**
* Starts a builder to create an error.
*/
export declare function createError(code: string, logMessage: any): ErrorBuilder;
/**
* Easily creates a generic internal server error (500)
*
* The log message is mandatory.
*/
export declare function createServerError(logMessage: any, publicMessage?: string): ApiErrorAndInfo;
/**
* Easily creates a Not Found error (404)
*
* @param logMessage The message to log.
* @param publicMessage The message to return in the error.
* @param logLevel The log level to use.
* @param logStackTrace Should the stack trace be logged?
*/
export declare function createNotFoundError(logMessage: any, publicMessage?: string, logLevel?: LogLevel, logStackTrace?: boolean): ApiErrorAndInfo;
/**
* Easily creates an invalid parameter error (400)
*
* @param publicMessage The message to return in the error (will also be logged).
* @param details Some additional information about the validation that failed.
* @param logLevel The log level to use.
* @param logStackTrace Should the stack trace be logged?
*/
export declare function createInvalidParameterError(publicMessage: string, details?: IApiError[], logLevel?: LogLevel, logStackTrace?: boolean): ApiErrorAndInfo;
/**
* Easily creates an unprocessable entity error (422)
*
* @param publicMessage The message to return in the error (will also be logged).
* @param details Some additional information about the validation that failed.
* @param logLevel The log level to use.
* @param logStackTrace Should the stack trace be logged?
*/
export declare function createUnprocessableEntityError(publicMessage: string, details?: IApiError[], logLevel?: LogLevel, logStackTrace?: boolean): ApiErrorAndInfo;
/**
* Easily creates an "Not Implemented" error (501)
*/
export declare function createNotImplementedError(logMessage?: any, publicMessage?: string): ApiErrorAndInfo;
/**
* Easily creates an "Unauthorized" error (401). To throw when
* the user *is not authenticated*.
*/
export declare function createUnauthorizedError(logMessage?: any, publicMessage?: string): ApiErrorAndInfo;
/**
* Easily creates a "Forbidden" error (403). To throw when
* the user is authenticated but doesn't have sufficient
* rights to access the requested resource.
*/
export declare function createForbiddenError(logMessage?: any, publicMessage?: string): ApiErrorAndInfo;
//# sourceMappingURL=apiErrorBuilder.d.ts.map