From 04c131f38839eb958d50f685de5490edae6aff57 Mon Sep 17 00:00:00 2001 From: Sven Slootweg Date: Mon, 25 Apr 2016 03:28:40 +0200 Subject: [PATCH] Hide name/message from error property display, and generate a more accurate error message if a stacktrace is absent --- lib/index.js | 14 +++++++++----- src/index.js | 14 ++++++++------ test.js | 2 ++ 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/lib/index.js b/lib/index.js index c33f077..7e198a7 100644 --- a/lib/index.js +++ b/lib/index.js @@ -35,14 +35,18 @@ function renderError(err) { message = stackLines[0]; stack = stackLines.slice(1); } else { - message = err.message; + message = err.name + ": " + err.message; } var properties = Object.keys(err).map(function (key) { - return { - key: key, - value: err[key] - }; + if (["name", "message"].indexOf(key) === -1) { + return { + key: key, + value: err[key] + }; + } + }).filter(function (item) { + return item != null; }); if (stack != null) { diff --git a/src/index.js b/src/index.js index 7877a30..8a65ab9 100644 --- a/src/index.js +++ b/src/index.js @@ -34,15 +34,17 @@ function renderError(err) { message = stackLines[0]; stack = stackLines.slice(1); } else { - message = err.message; + message = `${err.name}: ${err.message}`; } let properties = Object.keys(err).map((key) => { - return { - key: key, - value: err[key] - }; - }); + if (["name", "message"].indexOf(key) === -1) { + return { + key: key, + value: err[key] + }; + } + }).filter((item) => item != null); if (stack != null) { properties.push({ diff --git a/test.js b/test.js index 556e52f..1ad8ad9 100644 --- a/test.js +++ b/test.js @@ -17,5 +17,7 @@ err.location = { column: 31 } } +err.name = "GrammarError"; +err.message = "Infinite loop detected."; logger.error(err); \ No newline at end of file