UNPKG

@vitruvius-labs/ts-predicate

Version:
23 lines (22 loc) 777 B
import { ValidationError } from "../type-assertion/utils/validation-error.mjs"; import { toError } from "./to-error.mjs"; function normalizeErrorTree(error) { const ERROR = { message: error.message === "" ? "An unknown error occurred." : error.message, // eslint-disable-next-line @ts/no-use-before-define -- Circularity causes: getCauses(error), }; return ERROR; } function getCauses(error) { if (error instanceof AggregateError || error instanceof ValidationError) { return error.errors.map((cause) => { return normalizeErrorTree(toError(cause)); }); } if (error.cause !== undefined) { return [normalizeErrorTree(toError(error.cause))]; } return []; } export { normalizeErrorTree };