kibana-123
Version:
Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic
42 lines (35 loc) • 1.1 kB
JavaScript
import _ from 'lodash';
import formatESMsg from 'ui/notify/lib/_format_es_msg';
let has = _.has;
/**
* Formats the error message from an error object, extended elasticsearch
* object or simple string; prepends optional second parameter to the message
* @param {Error|String} err
* @param {String} from - Prefix for message indicating source (optional)
* @returns {string}
*/
function formatMsg(err, from) {
let rtn = '';
if (from) {
rtn += from + ': ';
}
let esMsg = formatESMsg(err);
if (typeof err === 'string') {
rtn += err;
} else if (esMsg) {
rtn += esMsg;
} else if (err instanceof Error) {
rtn += formatMsg.describeError(err);
} else if (has(err, 'status') && has(err, 'data')) {
// is an Angular $http "error object"
rtn += 'Error ' + err.status + ' ' + err.statusText + ': ' + err.data.message;
}
return rtn;
};
formatMsg.describeError = function (err) {
if (!err) return undefined;
if (err.body && err.body.message) return err.body.message;
if (err.message) return err.message;
return '' + err;
};
export default formatMsg;