1.1.2 • Published 7 months ago
lumina-form-validator v1.1.2
Form Validator
Installation
It can be installed using npm. Install it using
npm install lumina-form-validator
Once installed, you can add index.js directly from node_modules/favjs folder.
<script src="node_modules/favjs/index.js"></script>
or
You can import the module using ES6
import { Validator } from 'lumina-form-validator'
Usage
import { Validator } from 'lumina-form-validator'
const validator = new Validator({
name: '',
age: '18',
email: 'naruto',
phone: '9848022338'
})
validator.attr('name').label('Name').required()
validator.attr('age').label('Age').required().integer()
validator.attr('email').label('Email').required().email()
validator.attr('phone').label('Phone Number').extend((value) => {
return typeof(value) === 'string'
})
if(validator.isSuccess()) {
return 'Validation success'
} else {
return validator.getErrors()
}
Example :
Errors will be returned as below from getErrors()
method :
{
email: 'Email is not a valid email format',
name: 'Name is required',
age: 'Age is not a valid integer'
}
Validator methods :
Method | Description |
---|---|
attr() | Used to get attribute from the given object. |
name() | Set the proper user friendly name for the attribute field. |
required() | Check if the value is present |
integer() | Check if the value is proper integer |
string() | Check if the value is proper string |
minValue(size) | Check if the integer is below the given size. |
maxValue(size) | Check if the integer is above the given size. |
minLength(size) | Check if array or string contains minimum number of items. |
maxLength(size) | Check if array or sring exceeds maximum number of items. |
url() | Check if the value is a valid URL. |
file() | Check if the value is a valid File. |
maxSize(size) | Check if the file is within valid size limit. |
allowedTypes(types) | Check if the file type is allowed. |
email() | Check if the value is a valid email. |
password() | Check if the value is a valid password. |
pattern(format) | Check if the value is matching with the custom pattern given. |
equals(val) | Check if the value is equal to the given value. |
extend(function) | To extend validator to add your own validation. |
isSuccess() | Check if the validation is success of not. Returns boolean value. |
getErrors() | Get the errors as object if validation fails. |
Password format :
- Atleast one uppercase letter.
- Atleast one number.
- Atleast one lowercase letter.
- Atleast one special character.
- Atleat eight characters length.
Utils
Lumina form validator provides util methods for each type of validation. You can just import them and use them instead of Validator.
Usage
import {
isRequired,
checkEmail,
} from "lumina-form-validator";
if(isRequired('Naruto')) {
return 'Valid'
} else {
return 'Invalid'
}
Methods
Method | Description |
---|---|
isRequired(value) | Check if the value exists and valid. |
checkMinValue(value, size) | Check if the integer value is less than the size. |
checkMaxValue(value, size) | Check if the integer value is greater than the size. |
checkMinLength(value, size) | Check if array or string is minimum length of size. |
checkMaxLength(value, size) | Check if array or string is maximum length of size. |
checkUrl(value) | Check if value is a valid URL. |
checkEmail(value) | Check if value is a valid email. |
checkPassword(value) | Check if value is a valid password. |
checkCustomPattern(value, pattern) | Check if value matches with the pattern. |
checkEqual(value1, value2) | Check if value1 and value2 are equal. |
checkInteger(value) | Check if value is a valid integer. |
checkString(value) | Check if value is a valid string. |
checkFile(file) | Check if value is a valid file. |
checkMaxFileSize(file, size) | Check if file size is within max size limit. |
checkFileTypes(file, types) | Check if file type is allowed or not. |
File Validation Example :
Using Validator :
const validator = new Validator({
'firstFile' : firstFile,
'secondFile' : secondFile
})
validator.attr('firstFile').label('First File').file().maxSize(2 * 1024 * 1024).allowedTypes(['image/*'])
validator.attr('secondFile').label('Second File').file().maxSize(1 * 1024 * 1024).allowedTypes(['image/jpeg'])
Using Methods :
checkFile(firstFile)
checkMaxFileSize(firstFile, 2 * 1024 * 1024)
checkFileTypes(firstFile, ['image/png', 'video/mp4'])
Note : Support for the Typescript has been added in the latest version, the project is now can be used along with Typescript.
Run the below command to build with typescript :
npm run build
Alright, happy coding :)