UNPKG

swagger-object-validator

Version:

Validate your objects against a swagger spec and receive in-depth error traces

103 lines (102 loc) 4.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ValidationResult = exports.getTraceString = exports.ConstraintName = exports.ValidationErrorType = void 0; var ValidationErrorType; (function (ValidationErrorType) { ValidationErrorType["MISSING_REQUIRED_PROPERTY"] = "MISSING_REQUIRED_PROPERTY"; ValidationErrorType["ADDITIONAL_PROPERTY"] = "ADDITIONAL_PROPERTY"; ValidationErrorType["TYPE_MISMATCH"] = "TYPE_MISMATCH"; ValidationErrorType["ENUM_MISMATCH"] = "ENUM_MISMATCH"; ValidationErrorType["DATE_FORMAT"] = "DATE_FORMAT"; ValidationErrorType["CONSTRAINTS_VIOLATION"] = "CONSTRAINTS_VIOLATION"; ValidationErrorType["CUSTOM"] = "CUSTOM"; })(ValidationErrorType = exports.ValidationErrorType || (exports.ValidationErrorType = {})); var ConstraintName; (function (ConstraintName) { ConstraintName["minItems"] = "minItems"; ConstraintName["maxItems"] = "maxItems"; ConstraintName["uniqueItems"] = "uniqueItems"; ConstraintName["maximum"] = "maximum"; ConstraintName["minimum"] = "minimum"; ConstraintName["multipleOf"] = "multipleOf"; ConstraintName["minLength"] = "minLength"; ConstraintName["maxLength"] = "maxLength"; ConstraintName["pattern"] = "pattern"; })(ConstraintName = exports.ConstraintName || (exports.ConstraintName = {})); function getTraceString(trace) { return trace.map(function (traceStep) { var traceString = traceStep.stepName; if (traceStep.arrayPos !== undefined) { traceString += "[".concat(traceStep.arrayPos, "]"); } if (traceStep.concreteModel !== undefined) { traceString += "<".concat(traceStep.concreteModel, ">"); } return traceString; }).join('/'); } exports.getTraceString = getTraceString; var ValidationResult = (function () { function ValidationResult(errors) { this.errors = errors; } ; ValidationResult.prototype.humanReadable = function () { if (this.errors.length === 0) { return 'Valid'; } var ret = []; this.errors.forEach(function (error) { switch (error.errorType) { case ValidationErrorType.MISSING_REQUIRED_PROPERTY: ret.push('Missing required property:'); ret.push("\t - At ".concat(getTraceString(error.trace))); break; case ValidationErrorType.TYPE_MISMATCH: var typeValidationError = error; ret.push('Type mismatch:'); ret.push("\t - At ".concat(getTraceString(error.trace))); ret.push("\t - Should be: \"".concat(typeValidationError.typeShouldBe, "\"")); ret.push("\t - Is: \"".concat(typeValidationError.typeIs, "\"")); break; case ValidationErrorType.ENUM_MISMATCH: var enumValidationError = error; ret.push('Enum mismatch:'); ret.push("\t - At ".concat(getTraceString(error.trace))); ret.push("\t - Should be one of: [\"".concat(enumValidationError.enumShouldBe.join('", "'), "\"]")); ret.push("\t - Is: \"".concat(enumValidationError.enumIs, "\"")); break; case ValidationErrorType.ADDITIONAL_PROPERTY: ret.push('Additional Property:'); ret.push("\t - At ".concat(getTraceString(error.trace))); break; case ValidationErrorType.DATE_FORMAT: ret.push('Date format mismatch:'); ret.push("\t - At ".concat(getTraceString(error.trace))); break; case ValidationErrorType.CONSTRAINTS_VIOLATION: var violationError = error; ret.push('Constraint violation:'); ret.push("\t - Violation: ".concat(violationError.constraintName, "<").concat(violationError.constraintValue, ">")); ret.push("\t - At ".concat(getTraceString(error.trace))); break; case ValidationErrorType.CUSTOM: var customValidationError = error; ret.push('Custom Error:'); ret.push("\t - At ".concat(getTraceString(customValidationError.trace))); if (customValidationError.content) { ret.push("\t - Content: ".concat(JSON.stringify(customValidationError.content))); } break; default: ret.push('Unknown Error:'); ret.push("\t - At ".concat(getTraceString(error.trace))); break; } ret.push(''); }); return ret.join('\n'); }; return ValidationResult; }()); exports.ValidationResult = ValidationResult;