@korbiniankuhn/validator

Validate object schemas for js, expressjs, angular and mongoose.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
@korbiniankuhn/validator
0312.0.0-beta.73 years ago5 years agoMinified + gzip package size for @korbiniankuhn/validator in KB

Readme

Validator
Travis Coverage Known Vulnerabilities Dependencies Dev Dependencies npm npm-version license
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

API

See the detailed API Reference.
Additional information for:

Installation

For installation use the Node Package Manager:
$ npm install --save @korbiniankuhn/validator

or clone the repository:
$ git clone https://github.com/KorbinianKuhn/validator

Getting started

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);

Testing

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

Contribution

Get involved and push in your ideas.
Do not forget to add corresponding tests to keep up 100% test coverage.

License

The MIT License