blob: ecfadfa13e0a8129b25a8fb5e76ca7f3f0c87b00 [file]
function toErrorMessage(err, fallback) {
if (typeof fallback !== 'string' || fallback.length === 0) {
fallback = 'Unexpected error';
}
if (err === null || err === undefined) {
return fallback;
}
if (typeof err === 'string') {
return err;
}
if (typeof err.message === 'string' && err.message.length > 0) {
return err.message;
}
if (typeof err.errmsg === 'string' && err.errmsg.length > 0) {
return err.errmsg;
}
if (err.errorResponse && typeof err.errorResponse.errmsg === 'string' && err.errorResponse.errmsg.length > 0) {
return err.errorResponse.errmsg;
}
if (typeof err.toString === 'function') {
var text = err.toString();
if (typeof text === 'string' && text.length > 0 && text !== '[object Object]') {
return text;
}
}
try {
var json = JSON.stringify(err);
if (typeof json === 'string' && json.length > 0) {
return json;
}
} catch (jsonErr) {
// ignore stringify errors and fall back below
}
return fallback;
}
module.exports = toErrorMessage;