/** * Validation error description. */ var ValidationError = /** @class */ (function () { function ValidationError() { } /** * * @param shouldDecorate decorate the message with ANSI formatter escape codes for better readability * @param hasParent true when the error is a child of an another one * @param parentPath path as string to the parent of this property * @param showConstraintMessages show constraint messages instead of constraint names */ ValidationError.prototype.toString = function (shouldDecorate, hasParent, parentPath, showConstraintMessages) { var _this = this; if (shouldDecorate === void 0) { shouldDecorate = false; } if (hasParent === void 0) { hasParent = false; } if (parentPath === void 0) { parentPath = ""; } if (showConstraintMessages === void 0) { showConstraintMessages = false; } var boldStart = shouldDecorate ? "\u001B[1m" : ""; var boldEnd = shouldDecorate ? "\u001B[22m" : ""; var constraintsToString = function () { var _a; return (showConstraintMessages ? Object.values : Object.keys)((_a = _this.constraints) !== null && _a !== void 0 ? _a : {}).join(", "); }; var propConstraintFailed = function (propertyName) { return " - property ".concat(boldStart).concat(parentPath).concat(propertyName).concat(boldEnd, " has failed the following constraints: ").concat(boldStart).concat(constraintsToString()).concat(boldEnd, " \n"); }; if (!hasParent) { return ("An instance of ".concat(boldStart).concat(this.target ? this.target.constructor.name : 'an object').concat(boldEnd, " has failed the validation:\n") + (this.constraints ? propConstraintFailed(this.property) : "") + (this.children ? this.children .map(function (childError) { return childError.toString(shouldDecorate, true, _this.property, showConstraintMessages); }) .join("") : "")); } else { // we format numbers as array indexes for better readability. var formattedProperty_1 = Number.isInteger(+this.property) ? "[".concat(this.property, "]") : "".concat(parentPath ? "." : "").concat(this.property); if (this.constraints) { return propConstraintFailed(formattedProperty_1); } else { return this.children ? this.children .map(function (childError) { return childError.toString(shouldDecorate, true, "".concat(parentPath).concat(formattedProperty_1), showConstraintMessages); }) .join("") : ""; } } }; return ValidationError; }()); export { ValidationError }; //# sourceMappingURL=ValidationError.js.map