Path: blob/master/node_modules/@hapi/boom/lib/index.d.ts
1126 views
/**1* An Error object used to return an HTTP response error (4xx, 5xx)2*/3export class Boom<Data = any> extends Error {45/**6* Creates a new Boom object using the provided message7*/8constructor(message?: string | Error, options?: Options<Data>);910/**11* Custom error data with additional information specific to the error type12*/13data?: Data;1415/**16* isBoom - if true, indicates this is a Boom object instance.17*/18isBoom: boolean;1920/**21* Convenience boolean indicating status code >= 50022*/23isServer: boolean;2425/**26* The error message27*/28message: string;2930/**31* The formatted response32*/33output: Output;3435/**36* The constructor used to create the error37*/38typeof: Function;3940/**41* Specifies if an error object is a valid boom object42*43* @param debug - A boolean that, when true, does not hide the original 500 error message. Defaults to false.44*/45reformat(debug?: boolean): string;46}474849export interface Options<Data> {50/**51* The HTTP status code52*53* @default 50054*/55statusCode?: number;5657/**58* Additional error information59*/60data?: Data;6162/**63* Constructor reference used to crop the exception call stack output64*/65ctor?: Function;6667/**68* Error message string69*70* @default none71*/72message?: string;7374/**75* If false, the err provided is a Boom object, and a statusCode or message are provided, the values are ignored76*77* @default true78*/79override?: boolean;80}818283export interface Decorate<Decoration> {8485/**86* An option with extra properties to set on the error object87*/88decorate?: Decoration;89}909192export interface Payload {93/**94* The HTTP status code derived from error.output.statusCode95*/96statusCode: number;9798/**99* The HTTP status message derived from statusCode100*/101error: string;102103/**104* The error message derived from error.message105*/106message: string;107108/**109* Custom properties110*/111[key: string]: unknown;112}113114115export interface Output {116/**117* The HTTP status code118*/119statusCode: number;120121/**122* An object containing any HTTP headers where each key is a header name and value is the header content123*/124headers: { [header: string]: string | string[] | number | undefined };125126/**127* The formatted object used as the response payload (stringified)128*/129payload: Payload;130}131132133/**134* Specifies if an object is a valid boom object135*136* @param obj - The object to assess137* @param statusCode - Optional status code138*139* @returns Returns a boolean stating if the error object is a valid boom object and it has the provided statusCode (if present)140*/141export function isBoom(obj: unknown, statusCode?: number): obj is Boom;142143144/**145* Specifies if an error object is a valid boom object146*147* @param err - The error object to decorate148* @param options - Options object149*150* @returns A decorated boom object151*/152export function boomify<Data, Decoration>(err: Error, options?: Options<Data> & Decorate<Decoration>): Boom<Data> & Decoration;153154155// 4xx Errors156157/**158* Returns a 400 Bad Request error159*160* @param message - Optional message161* @param data - Optional additional error data162*163* @returns A 400 bad request error164*/165export function badRequest<Data>(message?: string, data?: Data): Boom<Data>;166167168/**169* Returns a 401 Unauthorized error170*171* @param message - Optional message172*173* @returns A 401 Unauthorized error174*/175export function unauthorized<Data>(message?: string | null): Boom<Data>;176177178/**179* Returns a 401 Unauthorized error180*181* @param message - Optional message182* @param scheme - the authentication scheme name183* @param attributes - an object of values used to construct the 'WWW-Authenticate' header184*185* @returns A 401 Unauthorized error186*/187export function unauthorized<Data>(message: '' | null, scheme: string, attributes?: string | unauthorized.Attributes): Boom<Data> & unauthorized.MissingAuth;188export function unauthorized<Data>(message: string | null, scheme: string, attributes?: string | unauthorized.Attributes): Boom<Data>;189190191export namespace unauthorized {192193interface Attributes {194[index: string]: number | string | null | undefined;195}196197interface MissingAuth {198199/**200* Indicate whether the 401 unauthorized error is due to missing credentials (vs. invalid)201*/202isMissing: boolean;203}204}205206207/**208* Returns a 401 Unauthorized error209*210* @param message - Optional message211* @param wwwAuthenticate - array of string values used to construct the wwwAuthenticate header212*213* @returns A 401 Unauthorized error214*/215export function unauthorized<Data>(message: string | null, wwwAuthenticate: string[]): Boom<Data>;216217218/**219* Returns a 402 Payment Required error220*221* @param message - Optional message222* @param data - Optional additional error data223*224* @returns A 402 Payment Required error225*/226export function paymentRequired<Data>(message?: string, data?: Data): Boom<Data>;227228229/**230* Returns a 403 Forbidden error231*232* @param message - Optional message233* @param data - Optional additional error data234*235* @returns A 403 Forbidden error236*/237export function forbidden<Data>(message?: string, data?: Data): Boom<Data>;238239240/**241* Returns a 404 Not Found error242*243* @param message - Optional message244* @param data - Optional additional error data245*246* @returns A 404 Not Found error247*/248export function notFound<Data>(message?: string, data?: Data): Boom<Data>;249250251/**252* Returns a 405 Method Not Allowed error253*254* @param message - Optional message255* @param data - Optional additional error data256* @param allow - Optional string or array of strings which is used to set the 'Allow' header257*258* @returns A 405 Method Not Allowed error259*/260export function methodNotAllowed<Data>(message?: string, data?: Data, allow?: string | string[]): Boom<Data>;261262263/**264* Returns a 406 Not Acceptable error265*266* @param message - Optional message267* @param data - Optional additional error data268*269* @returns A 406 Not Acceptable error270*/271export function notAcceptable<Data>(message?: string, data?: Data): Boom<Data>;272273274/**275* Returns a 407 Proxy Authentication error276*277* @param message - Optional message278* @param data - Optional additional error data279*280* @returns A 407 Proxy Authentication error281*/282export function proxyAuthRequired<Data>(message?: string, data?: Data): Boom<Data>;283284285/**286* Returns a 408 Request Time-out error287*288* @param message - Optional message289* @param data - Optional additional error data290*291* @returns A 408 Request Time-out error292*/293export function clientTimeout<Data>(message?: string, data?: Data): Boom<Data>;294295296/**297* Returns a 409 Conflict error298*299* @param message - Optional message300* @param data - Optional additional error data301*302* @returns A 409 Conflict error303*/304export function conflict<Data>(message?: string, data?: Data): Boom<Data>;305306307/**308* Returns a 410 Gone error309*310* @param message - Optional message311* @param data - Optional additional error data312*313* @returns A 410 gone error314*/315export function resourceGone<Data>(message?: string, data?: Data): Boom<Data>;316317318/**319* Returns a 411 Length Required error320*321* @param message - Optional message322* @param data - Optional additional error data323*324* @returns A 411 Length Required error325*/326export function lengthRequired<Data>(message?: string, data?: Data): Boom<Data>;327328329/**330* Returns a 412 Precondition Failed error331*332* @param message - Optional message333* @param data - Optional additional error data334*335* @returns A 412 Precondition Failed error336*/337export function preconditionFailed<Data>(message?: string, data?: Data): Boom<Data>;338339340/**341* Returns a 413 Request Entity Too Large error342*343* @param message - Optional message344* @param data - Optional additional error data345*346* @returns A 413 Request Entity Too Large error347*/348export function entityTooLarge<Data>(message?: string, data?: Data): Boom<Data>;349350351/**352* Returns a 414 Request-URI Too Large error353*354* @param message - Optional message355* @param data - Optional additional error data356*357* @returns A 414 Request-URI Too Large error358*/359export function uriTooLong<Data>(message?: string, data?: Data): Boom<Data>;360361362/**363* Returns a 415 Unsupported Media Type error364*365* @param message - Optional message366* @param data - Optional additional error data367*368* @returns A 415 Unsupported Media Type error369*/370export function unsupportedMediaType<Data>(message?: string, data?: Data): Boom<Data>;371372373/**374* Returns a 416 Request Range Not Satisfiable error375*376* @param message - Optional message377* @param data - Optional additional error data378*379* @returns A 416 Request Range Not Satisfiable error380*/381export function rangeNotSatisfiable<Data>(message?: string, data?: Data): Boom<Data>;382383384/**385* Returns a 417 Expectation Failed error386*387* @param message - Optional message388* @param data - Optional additional error data389*390* @returns A 417 Expectation Failed error391*/392export function expectationFailed<Data>(message?: string, data?: Data): Boom<Data>;393394395/**396* Returns a 418 I'm a Teapot error397*398* @param message - Optional message399* @param data - Optional additional error data400*401* @returns A 418 I'm a Teapot error402*/403export function teapot<Data>(message?: string, data?: Data): Boom<Data>;404405406/**407* Returns a 422 Unprocessable Entity error408*409* @param message - Optional message410* @param data - Optional additional error data411*412* @returns A 422 Unprocessable Entity error413*/414export function badData<Data>(message?: string, data?: Data): Boom<Data>;415416417/**418* Returns a 423 Locked error419*420* @param message - Optional message421* @param data - Optional additional error data422*423* @returns A 423 Locked error424*/425export function locked<Data>(message?: string, data?: Data): Boom<Data>;426427428/**429* Returns a 424 Failed Dependency error430*431* @param message - Optional message432* @param data - Optional additional error data433*434* @returns A 424 Failed Dependency error435*/436export function failedDependency<Data>(message?: string, data?: Data): Boom<Data>;437438/**439* Returns a 425 Too Early error440*441* @param message - Optional message442* @param data - Optional additional error data443*444* @returns A 425 Too Early error445*/446export function tooEarly<Data>(message?: string, data?: Data): Boom<Data>;447448449/**450* Returns a 428 Precondition Required error451*452* @param message - Optional message453* @param data - Optional additional error data454*455* @returns A 428 Precondition Required error456*/457export function preconditionRequired<Data>(message?: string, data?: Data): Boom<Data>;458459460/**461* Returns a 429 Too Many Requests error462*463* @param message - Optional message464* @param data - Optional additional error data465*466* @returns A 429 Too Many Requests error467*/468export function tooManyRequests<Data>(message?: string, data?: Data): Boom<Data>;469470471/**472* Returns a 451 Unavailable For Legal Reasons error473*474* @param message - Optional message475* @param data - Optional additional error data476*477* @returns A 451 Unavailable for Legal Reasons error478*/479export function illegal<Data>(message?: string, data?: Data): Boom<Data>;480481482// 5xx Errors483484/**485* Returns a internal error (defaults to 500)486*487* @param message - Optional message488* @param data - Optional additional error data489* @param statusCode - Optional status code override. Defaults to 500.490*491* @returns A 500 Internal Server error492*/493export function internal<Data>(message?: string, data?: Data, statusCode?: number): Boom<Data>;494495496/**497* Returns a 500 Internal Server Error error498*499* @param message - Optional message500* @param data - Optional additional error data501*502* @returns A 500 Internal Server error503*/504export function badImplementation<Data>(message?: string, data?: Data): Boom<Data>;505506507/**508* Returns a 501 Not Implemented error509*510* @param message - Optional message511* @param data - Optional additional error data512*513* @returns A 501 Not Implemented error514*/515export function notImplemented<Data>(message?: string, data?: Data): Boom<Data>;516517518/**519* Returns a 502 Bad Gateway error520*521* @param message - Optional message522* @param data - Optional additional error data523*524* @returns A 502 Bad Gateway error525*/526export function badGateway<Data>(message?: string, data?: Data): Boom<Data>;527528529/**530* Returns a 503 Service Unavailable error531*532* @param message - Optional message533* @param data - Optional additional error data534*535* @returns A 503 Service Unavailable error536*/537export function serverUnavailable<Data>(message?: string, data?: Data): Boom<Data>;538539540/**541* Returns a 504 Gateway Time-out error542*543* @param message - Optional message544* @param data - Optional additional error data545*546* @returns A 504 Gateway Time-out error547*/548export function gatewayTimeout<Data>(message?: string, data?: Data): Boom<Data>;549550551