Code Monkey home page Code Monkey logo

validex's Introduction

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: '[email protected]',
	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: '[email protected]'
}, {
	name: {
			/// validex props
	}
}),

exact({
	name: 'any',
	email: '[email protected]'
}, {
	name: {
			/// validex props
	}
}),

Some utilities functions

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

validex's People

Contributors

devnax avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.