From 27beee88f08d608f2ef37efdd743f1d146d4f208 Mon Sep 17 00:00:00 2001 From: Sven Slootweg Date: Sun, 28 Jun 2020 00:15:01 +0200 Subject: [PATCH] Omit '(root)' specifier entirely --- package.json | 1 + src/aggregrate-errors.js | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 474c41b..e3b6ac6 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "@validatem/normalize-rules": "^0.1.0", "@validatem/required": "^0.1.0", "@validatem/validation-result": "^0.1.1", + "as-expression": "^1.0.0", "assure-array": "^1.0.0", "create-error": "^0.3.1", "default-value": "^1.0.0", diff --git a/src/aggregrate-errors.js b/src/aggregrate-errors.js index c376ef1..bfef1b2 100644 --- a/src/aggregrate-errors.js +++ b/src/aggregrate-errors.js @@ -3,6 +3,7 @@ const indentString = require("indent-string"); const supportsColor = require("supports-color"); const matchVirtualProperty = require("@validatem/match-virtual-property"); +const asExpression = require("as-expression"); const AggregrateValidationError = require("./aggregrate-validation-error"); @@ -47,10 +48,21 @@ function renderErrorList(errors, isSubErrors = false) { ? "├─" : "└─"; - let mainLine = (isSubErrors) - // ? `... -> ${joinPathSegments(pathSegments)}: ${error.message}` - ? ` ${lineCharacter} ${joinPathSegments(pathSegments)}: ${error.message}` - : ` - At ${joinPathSegments(pathSegments)}: ${error.message}`; + let mainLine = asExpression(() => { + if (pathSegments.length > 0) { + if (isSubErrors) { + return ` ${lineCharacter} ${joinPathSegments(pathSegments)}: ${error.message}`; + } else { + return ` - At ${joinPathSegments(pathSegments)}: ${error.message}`; + } + } else { + if (isSubErrors) { + return ` ${lineCharacter} ${error.message}`; + } else { + return ` - ${error.message}`; + } + } + }); if (error.subErrors != null && error.subErrors.length > 0) { let renderedSubErrors = renderErrorList(error.subErrors, true);