mirror of
https://github.com/elastic/kibana.git
synced 2025-04-25 02:09:32 -04:00
* Updating everything except the license headers themselves * Applying ESLint rules * Manually replacing the stragglers
32 lines
830 B
TypeScript
32 lines
830 B
TypeScript
/*
|
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
* or more contributor license agreements. Licensed under the Elastic License
|
|
* 2.0; you may not use this file except in compliance with the Elastic License
|
|
* 2.0.
|
|
*/
|
|
|
|
export interface ErrorResponse {
|
|
body: {
|
|
statusCode: number;
|
|
error: string;
|
|
message: string;
|
|
attributes?: any;
|
|
};
|
|
name: string;
|
|
}
|
|
|
|
export function isErrorResponse(arg: any): arg is ErrorResponse {
|
|
return arg?.body?.error !== undefined && arg?.body?.message !== undefined;
|
|
}
|
|
|
|
export function getErrorMessage(error: any) {
|
|
if (isErrorResponse(error)) {
|
|
return `${error.body.error}: ${error.body.message}`;
|
|
}
|
|
|
|
if (typeof error === 'object' && typeof error.message === 'string') {
|
|
return error.message;
|
|
}
|
|
|
|
return JSON.stringify(error);
|
|
}
|