Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | 3x 55x 55x 55x 55x 55x 55x 55x 55x 55x 55x 55x 55x 3x 3x 3x 334x 3x 55x 55x 55x 4x 51x | import printValue from './util/printValue'
let strReg = /\$\{\s*(\w+)\s*\}/g
export default function ValidationError(errors, value, field, type) {
this.name = 'ValidationError'
this.value = value
this.path = field
this.type = type
this.errors = []
this.inner = []
if (errors)
[].concat(errors).forEach(err => {
this.errors = this.errors.concat(err.errors || err)
Iif (err.inner)
this.inner = this.inner.concat(err.inner.length ? err.inner : err)
})
this.message =
this.errors.length > 1
? `${this.errors.length} errors occurred`
: this.errors[0]
if (Error.captureStackTrace) Error.captureStackTrace(this, ValidationError)
}
ValidationError.prototype = Object.create(Error.prototype)
ValidationError.prototype.constructor = ValidationError
ValidationError.isError = function (err) {
return err && err.name === 'ValidationError'
}
ValidationError.formatError = function (message, params) {
const path = params.label || params.path || 'this'
if (path !== params.path) params = { ...params, path }
if (typeof message === 'string')
return message.replace(strReg, (_, key) => printValue(params[key]))
if (typeof message === 'function') return message(params)
return message
}
|