Skip to content

ofzza/enValidate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

enValidate

Validation extension for enTT, extending supported validation syntax to understand schema from 3rd party validation libraries JOI and YUP as validation criteria.

Get enValidate

To start using enValidate in your project, simply install it along side of enTT from NPM by running the following in your terminal:

npm install entt envalidate --save

How to Use

You can include enValidate into your EnTT class the same way you would any other enTT extension, using ste static get includes property and returning an instance of the extension. When instantiating the extension, make sure you pass in a reference to the 3rd party validation library you wish to use (JOI and/or YUP).

Having included the extension, you can now configure proeprty validation with JOI or YUP validation schema instead of just validation functions.

Example:

// Import enTT and enValidate
import EnTT from 'entt';
import EnValidate from 'envalidate';
// Import JOI and/or YUP validation library
import joi from 'joi';  // Will also work with lite version: 'joi-browser'
import yup from 'yup';

// Define an EnTT class with validated properties using JOI and YAP
class MyModel extends EnTT {
  static get includes () {
    // Include EnValidate extension passing instances of Joi and Yap
    return [ new EnValidate({ joi, yup }) ];
  }
  static get props () {
    return {
      // Extends validation to accept Joi schema instead of a function
      foo: { validate: joi.string().uppercase() },
      // Extends validation to accept Yup schema instead of a function
      bar: { validate: yup.string().uppercase() },
      // Accepts Joi schema as short-hand property configuration
      baz: joi.string().uppercase(),
      // Accepts Yup schema as short-hand property configuration
      qux: yup.string().uppercase()
    };
  }
}

About

Schema based data-model validation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published