validex
TypeScript icon, indicating that this package has built-in type declarations

1.1.6 • Public • Published

validex

The fastest and simple validator.

NPM JavaScript Style Guide

Install

npm install --save validex

use it with react react-validex

Usage

import validex from 'validex'

const validator = validex(data: Object, options: Object)

if(validator.validate()){

}

Options

Validate Description
required value must be required. (boolean)
type string,number,array,object,bool check the value type. (string)
min check the string's minimum length. (integer)
max check the string's maximum length. (integer)
email value must be an email. (boolean)
url value must be an url. (boolean)
equal value must be equal. (string)
notEqualWith check the value equal with another field. (string) another field name
lowercase all the characters must be lowercase. (boolean)
uppercase all the characters must be uppercase. (boolean)
capitalize required the first characters uppercase. (boolean)
hex check the value is hex or not. (boolean)
maxNumberRange check the maximum number range. (integer)
minNumberRange check the minimum number range. (integer)
maxWords check the maximum words length. (integer)
minWords check the minimum words length. (integer)
notAllowedChars check the value contained the some characters or not. (string) example: "abcd.#@"
notAllowedCharacters a-zA-Z characters are not allowed. (boolean)
notAlloweNumber 0-9 numbers are not allowed. (boolean)
notAllowedSpecialChars !@#$%^&*()_+\-=\[\]{};':"\|,.<>\/ these characters are not allowed, (boolean)
notAllowedWords check the value contained the some words or not. (string) example: "Hello World, Propgrammer, any"
compare validate the value by your self. (function)
regex compare with regular expression. (Regex)
strongPassword 8 or more characters with a mix of letters, numbers & symbols. (boolean)
mediumPassword 6 or more characters with a mix of letters, numbers & symbols. (boolean)
oneOf check the value is included. (array)
oneOfType check the value multiple types. (array)
shape check an object field with multiple properties. (object)
excat check an object field with multiple properties. (object)
date check the value is date or new Date Object. (boolean)
nameAlias just replace the field name. (string)

Example

import validex from  'validex'

const data = {
	user_name: 'Jhon Doe',
	user_email: 'yourname@example.com',
	user_age: 20
}
const schema = {
	user_name: {
		nameAlias: "User Name",
		required: true,
		type: 'string',
		capitalize: true,
		notAllowedSpecialChars: true
	},
	user_email: {
		nameAlias: "Email",
		email: true,
		lowercase: true
	},
	user_age: {
		nameAlias: "Age",
		type: 'number',
		minNumberRange: 18,
		maxNumberRange: 30
	}
}
const validator =  validex(data, schema)

const isValidate = validator.validate()

if(isValidate){
	// .....
}

// Or You can the hasError function
if(!validator.hasError()){
	// .....
}

Schema format

In the schema property you can pass single option or you can pass an array. the array contained two indexes

    1. Property type
    1. Error message

Example

const schema = {
	user_name: {
		required: [true, new Error("$field must be required")], // or you can pass the arra
		type: ['string', new Error("$field must be type of string")],
		min: [10, new Error("$field minumum characters of $compare")], // $compare will be replaced with 10
		max: 20,
		notAllowedSpecialChars: true,
	}
}

Validator Methods

Name Description
set Set the data and schema individually. set(fieldName, value, shema) Schema will be an Object
hasError check the error is exists or not @return boolean. you can also check the field error with this hasError('user_name')
getError get all the errors with an object. If you pass the field name then you can get just the field error message
removeError if you want you can remove the field error. removeError('user_name', 'min') it will remove just user_name min type error
validate validating the data.

Validator Callback

It will call when validate and removeError function call

validator.callback = (type, validator) => {
	if(type === 'removeError'){

	}
}

Compare

Custom validation with compare. @return type boolean.

{
	compare: (value, options) => {
		if(typeof value !== 'string'){
			return new Error("$field must be string")
		}
	}
}

Individually Import

import {
	isType,
	isEmail,
	isEqual,
	isUrl,
	isHex,
	isUpperCase,
	isLowerCase,
	isCapitalize,
	minWords,
	maxWords,
	minNumberRange,
	maxNumberRange,
	notAllowedChars,
	notAllowedCharacters,
	notAllowedSpecialChars,
	notAllowedWords,
	notAllowedNumber,
	regex,
	strongPassword,
	mediumPassword,
	oneOf,
	oneOfType,
	exact,
	shape
} from 'validex'

// every function has two arguments
// first is value second is compare value

isType(value, 'numbe|object|array|string|bool')
isEmail(value)
isEqual(value, compareValue)
isUrl(value)
isUpperCase(value)
isLowerCase(value)
isCapitalize(value)
isHex(value)
minWords(value, length)
maxWords(value, length)
minNumberRange(value, length)
maxNumberRange(value, length)
notAllowedChars(value, characters)
notAllowedCharacters(value)
notAllowedNumber(value)
notAllowedSpecialChars(value)
notAllowedWords(value, 'Hello World, Programmer')
regex(value, expression),
strongPassword(value),
mediumPassword(value),
oneOf(value, ['public', 'private']),
oneOfType(value, ['string', 'number']),
shape({
	name: 'any',
	email: 'any@example.com'
}, {
	name: {
			/// validex props
	}
}),

exact({
	name: 'any',
	email: 'any@example.com'
}, {
	name: {
			/// validex props
	}
}),

Some utilities functions

import {isObject, isArray, isNumber, isInteger, isString, isBool} from 'validex'

Package Sidebar

Install

npm i validex

Weekly Downloads

1

Version

1.1.6

License

MIT

Unpacked Size

161 kB

Total Files

7

Last publish

Collaborators

  • devnax