@uzelux/validator

Simple schema based validator

Usage no npm install needed!

<script type="module">
  import uzeluxValidator from 'https://cdn.skypack.dev/@uzelux/validator';
</script>

README

Validator

A simple Schema based Validator

Uzelux's note

This project is WIP, derived from one of my projects' submodule

Please kindly report any issue/bugs discovered when use

Usage

const { Validator, ValidatorTypes, ValidatorError } = require('@uzelux/validator');

const validator = new Validator({
  iAmString: {
    type: ValidatorTypes.STRING,
    length: 10,
  }
});

const iAmString = 'sure i am';

try {
  const result = validator.validate({iAmString});
  console.log(result); // true
} catch (e) {
  console.log(e.name); // ValidatorError;
  consoel.log(e.message) // Error message
}

Options Available

Currently the schema only provides single layer structure. With the parameter name as the key and the criteria as the body.

const validator = new Validator({
  parameterName: {
    type: ValidatorTypes.STRING, // see ValidatorTypes
    contains: 'must have', // value must contain the data specified 
    regex: /\w+/g, // match regular expression
    length: 10, // length after toString()
    within: ['possible1', 'possible2'], // value exist in array provided
    required: false // all parameters are treated as required by default, 
                    // i.e. must be provided in validate() 
  }
})

Types Supported

Currently the following types are provided under the class ValidatorTypes

Name Type Alias
BOOLEAN boolean BOOL
NULL null
UNDEFINED undefined
NUMBER number FLOAT, DOUBLE
BIGINT bigint
STRING string
SYMBOL symbol
OBJECT object
FUNCTION function
ARRAY array
DATE date
ERROR error
INTEGER integer
NAN NaN

Errors

Name Type Thrown By
MissingParameter ValidatorError Assert Require
InvalidType ValidatorError Assert Type
DoesNotContain ValidatorError Assert Contain
NotInRange ValidatorError Assert Within
RegexMismatch ValidatorError Assert Regex
LengthMismatch ValidatorError Assert Length