UNPKG

ez-validation

Version:
168 lines (136 loc) 6.47 kB
<img src="https://github.com/Amad27/ez-validation/blob/adding-logo/logo/EZ%201024.png?raw=true" width="110" align="right" alt="ez-validation logo"/> ![badge](https://github.com/amad27/ez-validation/workflows/npm%20publish/badge.svg) [![NPM version](https://img.shields.io/npm/v/ez-validation.svg)](https://www.npmjs.com/package/ez-validation) [![NPM downloads overall](https://img.shields.io/npm/dt/ez-validation.svg)](https://www.npmjs.com/package/ez-validation) [![NPM package size](https://img.shields.io/bundlephobia/minzip/ez-validation)](https://img.shields.io/bundlephobia/minzip/ez-validation) [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT) [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release) # Validation made Ez > Who said Validation has to be hard and annoying! https://medium.com/@27amad27/validation-made-ez-50e72d6a0b29 <hr/> <details open><summary>API</summary> <p> | Function | Params | Description | | ---------------- | ----------------------- | ---------------------------------------------------------------------------------------------------------- | | required | errorMessage | checks if value is empty or not | | isString | errorMessage | checks if value is a STRING | | isBoolean | errorMessage | checks if value is a BOOLEAN | | isNumber | errorMessage | checks if value is a INT | | isWholeNumber | errorMessage | checks if value is a Whole Number | | isObject | errorMessage | checks if value is an OBJECT | | isEmpty | errorMessage | checks if value is an EMPTY | | isAlphanumeric | errorMessage | checks if value is Alphanumeric | | isEmail | errorMessage | checks if value is valid Email | | isPhoneNumber | errorMessage | checks if value is valid Phone Number | | isUSAZipCode | errorMessage | checks if value is valid USA Zip Code | | maxLength | maxNumber, errorMessage | checks if value exceeds max length | | minLength | minNumber, errorMessage | checks if value is below min length | | maxValue | maxNumber, errorMessage | checks if value exceeds max number value | | minValue | minNumber, errorMessage | checks if value is below min number value | | customRegex |  regex, errorMessage | pass in a custom regex | | customValidation |  cb, errorMessage | pass in a custom call back that returns a Boolean False if there is an error True is there is not an error | </p> </details> <hr/> <details open><summary>Examples</summary> <p> ```javascript import { EzValidation } from "ez-validation"; val = "asdf"; EzValidation(val).customValidation( val => (val == "asdf" ? false : true), "Please enter valid response" ).errorMessage; // output = "Please enter valid response" val = 123; EzValidation(val) .isNumber("I am not a number") .maxValue(100, "Too large").errorMessage; // output = "Too large" val = "I am a large string"; EzValidation(val) .isString() .maxLength(4) .required().errorMessage; // output = "Exceeds maximum length of  4" val = "I am a large string"; EzValidation(val, "DEFAULT ERROR") .isString() .maxLength(4) .required().errorMessage; // output = "DEFAULT ERROR" ``` </p> </details> <hr/> <details open><summary>Schema Based Validation</summary> <p> If you want to validate using a schema ```javascript import { schemaValidation } from "ez-validations"; const values = { noValidation: "hi", email: "fake-email", name: "im a cow" }; const schema = { email: (val: string) => EzValidation(val) .isEmail() .required().errorMessage, name: (val: string) => EzValidation(val).maxLength(2).errorMessage }; schemaValidation(values, validationSchema); /* output: { email: "not a valid email", name: "name length too long" } */ ``` ```javascript import { schemaValidation } from "ez-validations"; const values = { noValidation: "hi", email: "fake-email", name: "im a cow" }; const schema = { email: { validate: (val: string) => EzValidation(val) .isEmail() .required().errorMessage }, name: { validate: (val: string) => EzValidation(val).maxLength(2).errorMessage } }; schemaValidation(values, schema, "validate"); /* output: { email: "not a valid email", name: "name length too long" } */ ``` </p> </details> <hr/> <details><summary>Advance Custom Usage</summary> <p> If you have a validation method that isn't provided thats used often you can extend the ValidationAPI class to add your own methods! ```javascript import { EZValidationAPI } from "ez-validation"; class CustomEzValidation extends EZValidationAPI { customMethod() { if (this.validating == 0) { this._returnError("value can't be 0"); } return this; } } new CustomEZValidation(0).customMethod().errorMessage; // "value can't be 0" ``` </p> </details>