Validate raw data

In addition to the instance validate() method, Structure also adds a static validate() to your structure classes that receives a raw object or a structure instance as parameter and has the same return type of the normal validation:

const User = attributes({
  name: {
    type: String,
    minLength: 10
  },
  age: {
    type: Number,
    required: true
  }
})(class User { });

// Using a raw object
const rawData = {
  name: 'John'
};

const { valid, errors } = User.validate(rawData);

valid; // false
errors; /*
[
  { message: '"name" length must be at least 10 characters long', path: 'name' },
  { message: '"age" is required', path: 'age' }
]
*/

// Using a structure instance
const user = new User({
  name: 'Some long name'
});

const validation = User.validate(user);

validation.valid; // false
validation.errors; /*
[
  { message: '"age" is required', path: 'age' }
]
*/

Last updated