UNPKG

@korbiniankuhn/validator

Version:

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

122 lines (84 loc) 3.23 kB
# Validator [![Travis](https://img.shields.io/travis/KorbinianKuhn/validator.svg?style=flat-square)](https://travis-ci.org/KorbinianKuhn/validator/builds) [![Coverage](http://img.shields.io/coveralls/KorbinianKuhn/validator.svg?style=flat-square&branch=master)](https://coveralls.io/r/KorbinianKuhn/validator) [![Known Vulnerabilities](https://snyk.io/test/github/KorbinianKuhn/validator/badge.svg?style=flat-square)](https://snyk.io/test/github/KorbinianKuhn/validator) [![Dependencies](https://img.shields.io/david/KorbinianKuhn/validator.svg?style=flat-square)](https://david-dm.org/KorbinianKuhn/validator) [![Dev Dependencies](https://img.shields.io/david/dev/KorbinianKuhn/validator.svg?style=flat-square)](https://david-dm.org/KorbinianKuhn/validator) [![npm](https://img.shields.io/npm/dt/@korbiniankuhn/validator.svg?style=flat-square)](https://www.npmjs.com/package/@korbiniankuhn/validator) [![npm-version](https://img.shields.io/npm/v/@korbiniankuhn/validator.svg?style=flat-square)](https://www.npmjs.com/package/@korbiniankuhn/validator) ![license](https://img.shields.io/github/license/KorbinianKuhn/validator.svg?style=flat-square) 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](doc/api.md). Additional information for: - [expressjs](doc/express.md) - [angular](doc/angular.md) - [mongoose](doc/mongoose.md) ## Installation For installation use the [Node Package Manager](https://github.com/npm/npm): ``` $ npm install --save @korbiniankuhn/validator ``` or clone the repository: ``` $ git clone https://github.com/KorbinianKuhn/validator ``` ## Getting started Initialize a new Validator: ```javascript const { Validator } = require('@korbiniankuhn/validator'); const validator = Validator(); ``` Create a new Schema: ```javascript 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: ```javascript // 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](LICENSE)