UNPKG

@knorm/knorm

Version:

A JavaScript ORM written using ES6 classes

72 lines (71 loc) 2.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const util_1 = require("util"); const KnormError_1 = require("./KnormError"); class ValidationError extends KnormError_1.KnormError { constructor({ field, value, validator = {} }) { super({ field, value, validator }); this.field = field; this.value = value; this.validator = validator; let errorType; if (validator.required) { errorType = 'RequiredError'; } else if (validator.type) { errorType = 'TypeError'; } else if (validator.minLength) { errorType = 'MinLengthError'; } else if (validator.maxLength !== undefined) { errorType = 'MaxLengthError'; } else if (validator.oneOf) { errorType = 'OneOfError'; } else if (validator.equals !== undefined) { errorType = 'EqualsError'; } else if (validator.regex) { errorType = 'RegexError'; } else if (validator.validate) { errorType = 'ValidatorError'; } this.type = errorType; } formatMessage({ field, validator = {} }) { let message; let forFieldName = `for field \`${field.model.name}.${field.path}\``; if (field.valueIndex !== undefined) { forFieldName += ` at index ${field.valueIndex}`; } if (validator.required) { message = `Missing required value ${forFieldName}`; } else if (validator.type) { message = `Expected value of type \`${validator.type}\` ${forFieldName}`; } else if (validator.minLength) { message = `Expected value of min-length \`${validator.minLength}\` ${forFieldName}`; } else if (validator.maxLength !== undefined) { message = `Expected value of max-length \`${validator.maxLength}\` ${forFieldName}`; } else if (validator.oneOf) { message = `Expected value ${forFieldName} to be one of ${util_1.inspect(validator.oneOf)}`; } else if (validator.equals !== undefined) { message = `Expected value ${forFieldName} to equal ${util_1.inspect(validator.equals)}`; } else if (validator.regex) { message = `Expected value ${forFieldName} ${validator.notMatching ? 'not ' : ''}to match ${util_1.inspect(validator.regex)}`; } else if (validator.validate) { message = `Validation failed ${forFieldName}`; } return message; } } exports.ValidationError = ValidationError;