Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/chopshop1/ez-validation

Validation made Ez
https://github.com/chopshop1/ez-validation

angular customizable es6 ez form-validation javascript js react svelte typescript validation vue

Last synced: about 18 hours ago
JSON representation

Validation made Ez

Awesome Lists containing this project

README

        

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


API

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



Examples

```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"
```



Schema Based Validation


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"
}
*/
```



Advance Custom Usage


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"
```