fast_validator

Last updated:

0 purchases

fast_validator Image
fast_validator Images
Add to Cart

Description:

fast validator

Fast Validator #
A flutter package to validate text fields, date fields or any data fastly. The package contains a list of built in commonly used validators. You can also add custom validators for your needs.



Screenshots #
Validating an email id

Validating the email id "[email protected]" (valid)

Validating the email id "[email protected]" (invalid because contains '..')

Usage #
Import it
import 'package:fast_validator/fast_validator.dart';
copied to clipboard
Use the default validator function to validate anything.
ValidationResult result = FastValidator.validate(text,fieldName: 'Username',validators: [FastRequiredValidation()]);
copied to clipboard
The ValidationResult/ValidationAllResult class will contain the below details.



Variable
Type
Description




valid
bool
indicates whether the given data have passed all the given validations


errorMessage
String
The error message after validation. This will be null if the data is valid


allErrorMessage
List
list of errors after validating all validators given to the validate function (only available with FastValidator.validateAll())


type
ResultType
An enum indicating the validation result status, like valid, invalid, validWithNoValue. ValidWithNoValue indicates the filed was valid but did not contain any data. This can be useful if you are trying to validate any filed which is not a required one


result
Same as the type of input data
the same data given as input to the validation function



The FastValidator.validate function has three arguments.
First parameter is the data to be validated. This can be of any type such as String, int, List etc.
The fieldName is the name of the filed which you are validating. This is just to make a meaningful validation message.
For example if you give the filedName as 'Username', then the default validation error message will be 'Username is required'.
If you provide fieldName as 'XYZ', then the default validation error message will be 'XYZ is required'.
The validators parameter is the list of validations to be done on the given data.
These validations are done in the order in which they are kept in the list. For example, if you give the list as validators: [FastRequiredValidation(), FastEmailValidation()], then the FastRequiredValidation() validation will be executed first. If that validation is passed then the FastEmailValidation() will be executed.
Use
ValidationResult result = FastValidator.validate(
text,
fieldName: 'Sample field name',
validators: [FastRequiredValidation(), FastMaxLengthValidation(maxLength: 12)],
);
copied to clipboard
if you want to get the first error at which the validation failed. FastValidator.validate() will be returning the error result
immediately if any of the validations in the list fails. The rest of the validations in the list will not be executed. Hence the error message will be a 'String'.
Use
ValidationAllResult result = FastValidator.validateAll(
text,
fieldName: 'Sample field name',
validators: [FastRequiredValidation(), FastMinLengthValidation(minLength: 12)],
);
copied to clipboard
if you want to get the all the errors from the list of validations given. FastValidator.validateAll() function will be returning a list of errors after executing all the given validations in the list.
Build in validators #
The below given are the ready-made validators you can use. Most of the validators will have optional arguments to customize the validation.



Validator
Description




FastRequiredValidation()
used to do required validation on a filed. Null and empty fields are also considered as invalid


FastMinLengthValidation()
used to validate minimum length of a string


FastMaxLengthValidation()
used to validate maximum length of a string


FastExactLengthValidation()
used to validate exact length of a string


FastMinValueValidation()
used to validate minimum value of a number


FastMaxValueValidation()
used to validate maximum value of a number


FastExactValueValidation()
used to validate exact value of given data


FastTypeValidation()
used to validate the datatype of given data


FastEmailValidation()
used to validate an email


FastUrlValidation()
used to validate an URL


FastDigitsOnlyValidation()
used to validate whether a string contains numbers alone


FastAlphabetsOnlyValidation()
used to validate whether a string contains alphabets alone


FastAlphaNumericOnlyValidation()
used to validate whether a string contains alphabets and numbers alone


FastAllowedCharactersValidation()
used to validate whether a string contains the allowed characters alone


FastRegexValidation()
used to validate a String against a RegExp


FastPasswordValidation()
used to validate a password field


FastDateValidation()
used to validate a date field


FastCreditCardValidation()
used to validate a credit card number using Luhn's algorithm


FastGSTNumberValidation()
used to validate a GST number


FastPhoneNumberValidation()
used to validate a phone number



Custom validator #
You can create your own validators and can even use them along with the build in validations.
To create a custom validator, create a class and extend it with FastValidation class as shown in the below example.
class MyCustomValidator extends FastValidation {
final String? errorMessage; // Optional error message
MyCustomValidator({this.errorMessage});

@override
validate<T>(T toValidate, String? fieldName) {
String? error;
bool valid = true;
ResultType outputType = ResultType.valid; // setting the default value to valid

// the main validation condition. In this example we are just checking whether the input data is a String or not.
if (toValidate.runtimeType != String) {
error = errorMessage ?? 'This filed must be a string';
valid = false;
outputType = ResultType.invalid;
}

return ValidationResult<T>(
errorMessage: error,
type: outputType,
valid: valid,
result: toValidate,
);
}
}
copied to clipboard
And now you can use this in the FastValidator.validate() function as shown below.
ValidationResult result = FastValidator.validate(
50,
fieldName: null,
validators: [MyCustomValidator()],
);

debugPrint('Result: ${result.result}');
debugPrint('Valid: ${result.valid}');
debugPrint('Type: ${result.type}');
debugPrint('ErrorMsg: ${result.errorMessage}');
copied to clipboard
Usage in TextFormField #
You can use the FastValidator.validate() function directly with the TextFormFiled widget as shown below.
TextFormField(
controller: textController,
decoration: const InputDecoration(
contentPadding: EdgeInsets.symmetric(horizontal: 6, vertical: 0),
border: OutlineInputBorder(borderSide: BorderSide(width: 3, color: Colors.green)),
),
validator: (String? text) {
ValidationResult result = FastValidator.validate(text?.trim(),
fieldName: 'Personal email', validators: [FastRequiredValidation(), FastEmailValidation()]);

return result.errorMessage;
},
)
copied to clipboard
Feel free to contribute and support.
Contributors 🤝 #
Big thanks go to these wonderful people:






Author: Christo Pananjickal






Package on pub.dev #
fast_validator

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.