You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							55 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
	
	
							55 lines
						
					
					
						
							1.6 KiB
						
					
					
				"use strict"; | 
						|
 | 
						|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | 
						|
 | 
						|
exports.__esModule = true; | 
						|
exports.default = ValidationError; | 
						|
 | 
						|
var _printValue = _interopRequireDefault(require("./util/printValue")); | 
						|
 | 
						|
var strReg = /\$\{\s*(\w+)\s*\}/g; | 
						|
 | 
						|
var replace = function replace(str) { | 
						|
  return function (params) { | 
						|
    return str.replace(strReg, function (_, key) { | 
						|
      return (0, _printValue.default)(params[key]); | 
						|
    }); | 
						|
  }; | 
						|
}; | 
						|
 | 
						|
function ValidationError(errors, value, field, type) { | 
						|
  var _this = this; | 
						|
 | 
						|
  this.name = 'ValidationError'; | 
						|
  this.value = value; | 
						|
  this.path = field; | 
						|
  this.type = type; | 
						|
  this.errors = []; | 
						|
  this.inner = []; | 
						|
  if (errors) [].concat(errors).forEach(function (err) { | 
						|
    _this.errors = _this.errors.concat(err.errors || err); | 
						|
    if (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) { | 
						|
  if (typeof message === 'string') message = replace(message); | 
						|
 | 
						|
  var fn = function fn(params) { | 
						|
    params.path = params.label || params.path || 'this'; | 
						|
    return typeof message === 'function' ? message(params) : message; | 
						|
  }; | 
						|
 | 
						|
  return arguments.length === 1 ? fn : fn(params); | 
						|
}; | 
						|
 | 
						|
module.exports = exports["default"]; |