summaryrefslogtreecommitdiff
path: root/src/node_modules/class-validator/esm2015/validation/ValidationError.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/node_modules/class-validator/esm2015/validation/ValidationError.js')
-rw-r--r--src/node_modules/class-validator/esm2015/validation/ValidationError.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/node_modules/class-validator/esm2015/validation/ValidationError.js b/src/node_modules/class-validator/esm2015/validation/ValidationError.js
new file mode 100644
index 0000000..9306d75
--- /dev/null
+++ b/src/node_modules/class-validator/esm2015/validation/ValidationError.js
@@ -0,0 +1,37 @@
+/**
+ * Validation error description.
+ */
+export class 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
+ */
+ toString(shouldDecorate = false, hasParent = false, parentPath = ``) {
+ const boldStart = shouldDecorate ? `\x1b[1m` : ``;
+ const boldEnd = shouldDecorate ? `\x1b[22m` : ``;
+ const propConstraintFailed = (propertyName) => ` - property ${boldStart}${parentPath}${propertyName}${boldEnd} has failed the following constraints: ${boldStart}${Object.keys(this.constraints).join(`, `)}${boldEnd} \n`;
+ if (!hasParent) {
+ return `An instance of ${boldStart}${this.target ? this.target.constructor.name : "an object"}${boldEnd} has failed the validation:\n` +
+ (this.constraints ? propConstraintFailed(this.property) : ``) +
+ this.children
+ .map(childError => childError.toString(shouldDecorate, true, this.property))
+ .join(``);
+ }
+ else {
+ // we format numbers as array indexes for better readability.
+ const formattedProperty = Number.isInteger(+this.property) ? `[${this.property}]` : `${parentPath ? `.` : ``}${this.property}`;
+ if (this.constraints) {
+ return propConstraintFailed(formattedProperty);
+ }
+ else {
+ return this.children
+ .map(childError => childError.toString(shouldDecorate, true, `${parentPath}${formattedProperty}`))
+ .join(``);
+ }
+ }
+ }
+}
+
+//# sourceMappingURL=ValidationError.js.map