Skip to content

chopshop1/ez-validation

Repository files navigation

ez-validation logo

badge NPM version NPM downloads overall NPM package size

License: MIT 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

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"