UNPKG

@vitruvius-labs/ts-predicate

Version:
26 lines (25 loc) 1.32 kB
import { normalizeErrorTree } from "./normalize-error-tree.mjs"; var TreeStructure; (function (TreeStructure) { TreeStructure["CHILD_CONNECTOR"] = "\u251C\u2500\u2500\u2500 "; TreeStructure["LAST_CHILD_CONNECTOR"] = "\u2514\u2500\u2500\u2500 "; TreeStructure["CHILD_INDENT"] = "\u2502 "; TreeStructure["LAST_CHILD_INDENT"] = " "; })(TreeStructure || (TreeStructure = {})); function generateTreeStructure(errors, indent) { let result = ""; const LAST_INDEX = errors.length - 1; errors.forEach((error, index) => { const IS_LAST_CHILD = index === LAST_INDEX; const CONNECTOR = IS_LAST_CHILD ? "\u2514\u2500\u2500\u2500 " /* TreeStructure.LAST_CHILD_CONNECTOR */ : "\u251C\u2500\u2500\u2500 " /* TreeStructure.CHILD_CONNECTOR */; const INDENT = IS_LAST_CHILD ? " " /* TreeStructure.LAST_CHILD_INDENT */ : "\u2502 " /* TreeStructure.CHILD_INDENT */; result = `${result}${indent}${CONNECTOR}${error.message}\n`; result = result + generateTreeStructure(error.causes, `${indent}${INDENT}`); }); return result; } function stringifyErrorTree(error) { const ERROR = (error instanceof Error) ? normalizeErrorTree(error) : error; return `${ERROR.message}\n${generateTreeStructure(ERROR.causes, "")}`; } export { stringifyErrorTree };