Validate input values with object schemas.
Features
- completely sync or async validation
- highly customizable
- automatic documentation generation (e.g. RAML)
- reusable custom types
- short syntax through function chaining
- parse input values to target type
- special support for expressjs, angular, mongoose
- no dependencies
See the detailed API Reference.
Additional information for:
For installation use the Node Package Manager:
$ npm install --save @korbiniankuhn/validator
or clone the repository:
$ git clone https://github.com/KorbinianKuhn/validator
Initialize a new Validator:
const { Validator } = require('@korbiniankuhn/validator');
const validator = Validator();
Create a new Schema:
const schema = validator.Object({
name: validator.String()
});
schema.validate({ name: 'Jane Doe' }).then(object => {
// returns the given object
});
schema.validateSync({ name: 'Jane Doe' });
// returns given object
Extend the validator with custom schemas and types to reuse them later:
// Create a reusable regular expression
const myRegex = validator.String().regex(/[A-Z]/);
validator.addType('myRegex', myRegex);
await validator.Custom('myRegex').validate(value);
// Create a reusable address schema
const address = validator.Object({
street: validator.String(),
postal: validator.Integer(),
city: validator.String()
});
validator.addType('address', address);
await validator.Custom('address').validate(value);
First you have to install all dependencies:
$ npm install
To execute all unit tests once, use:
$ npm test
To get information about the test coverage, use:
$ npm run coverage
Get involved and push in your ideas.
Do not forget to add corresponding tests to keep up 100% test coverage.