UNPKG

@chrisbrocklesby/validation

Version:

This is a validation helper, It helps validate JSON data via a quick rule set you create.

95 lines (76 loc) 2.37 kB
# Validation # (This helper sets rules to validate JSON Data) This is a validation helper, The helper sets rules to validate JSON Data and throw a validation error if rule for data is not true. This valdation helper allows you to create custom rules via regex or working with other npm modules. ## Install ``` npm i @chrisbrocklesby/validation ``` ## Require ```js const validation = require('@chrisbrocklesby/validation'); ``` ## Example Usage ```js const validation = require('@chrisbrocklesby/validation'); function exampleFunction() { try { const data = { name: 'Chris', email: 'useratemail.ext' }; // Note email is not valid and returns => throw validationError validation.validate([{ isValid: validation.isRequired(data.name), message: 'name:required', },{ isValid: validation.isEmail(data.email), message: 'email:invalid', }]); } catch (error) { console.log(error); // Validation Error Returns => // ValidationError { // name: 'validationError', // messages: [ 'email:invalid' ] // } } } exampleFunction(); ``` ## Built-In Validation Functions ```js // Note replace value with what is to be checked, returns true/false. validation.isString(value) validation.isNumber(value) validation.isBoolean(value) validation.isArray(value) validation.isObject(value) validation.isRequired(value) validation.notNull(value) validation.isPk(value) validation.isEmail(value) validation.isPassword(value) ``` ## Validation rules structure (Array/Object) ```js [{ isValid: validation.isRequired(data.name), message: 'name:required', },{ isValid: validation.isEmail(data.email), message: 'email:invalid', },{ isValid: /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(data.custom), // Customs isValid: needs to return true/false message: 'custom:message', }] ``` ## Contributing Contributions, issues and feature requests are welcome. ## Authors **Chris Brocklesby** - Twitter: [@ChrisBrocklesby](https://twitter.com/ChrisBrocklesby) - Github: [@ChrisBrocklesby](https://github.com/ChrisBrocklesby) ## Show Your Support Please ⭐️ this repository if this project helped you! ## License Copyright © 2020 [Chris Brocklesby](https://github.com/ChrisBrocklesby). This project is licensed under the MIT License - see the [LICENSE file](LICENSE) for details.