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