formdator

Last updated:

0 purchases

formdator Image
formdator Images
Add to Cart

Description:

formdator

formdator #











Contents #

Overview
Getting Started
List of Validators

Categories


Demo Application
Contribute
References

Overview #
Formdator — Formidable Validator.
Formdator is a fully object-oriented package for validating Flutter form fields.
Its main benefits, compared to all other similar packages, include:

Dependency-free: there is only pure Dart code.
Object-oriented mindset: the elements for validation are immutable
objects that can be combined in various configurations.
Classes with short — yet meaningful — names like Req for required fields;
ReqEmail for non-empty, well-formed emails; Len for length constraints;
Int for integer-only values; and so on.
Easy-to-compose validators: e.g., the command Trim(Email()) produces a
validator that trims an email value before validating it.
Multiple validation at once: you can apply multiple validation rules at once
by using the Pair or Rules classes.
Built-in set of compound validators: e.g., to validate an email and limit its
length to a maximum of 50 characters, simply use an instance of
Email.len(50) — write less; do more!

For easier integration with Flutter form fields, every validator implements the
call() method. As a result, any validator object can be called as a function —
Callable Classes.
Getting Started #
The following code snippet demonstrates how you can easily group the Rules,
Req, Len and Email classes together to create a kind of
'email-max-50-characters' constraint.
@override
Widget build(BuildContext context) {
return TextFormField(
validator: Rules<String>([ // The "Rules" class performs multiple validations at once.
Req(blank: 'Please enter the email'), // "blank" is the error message in case of field left blank.
Len.max(50, long: 'Email length cannot exceed 50 characters'), // "long" is the error message if an input value is too long.
Email(mal: 'Malformed email'), // "mal" is the error message in case of malformed email.
]),
);
}
copied to clipboard
Or — even better — use the compound validator ReqEmail to perform the same
task.
@override
Widget build(BuildContext context) {
return TextFormField(
validator: ReqEmail.len(
50,
blank: 'Please enter the email',
mal: 'Malformed email',
long: 'Email length cannot exceed 50 characters',
),
);
}
copied to clipboard
The shorter command ReqEmail.len(50) is equivalent to the much longer command
Rules<String>([Req(), Len.max(50), Email()]) — write less; do more!
List of Validators #
For a complete list of validators with detailed information about each one
(constructors, parameters, etc.):

formdator-library.

Grouped by Category #

brazil
— validators related to Brazil (BrMobile, BrPhone, Cep, Cnpj, Cpf, etc.).
core —
core validators (Len, Match [text pattern], Pair, Req, Rules, Trim, etc.).
logic
— validation logic and unit testing (Equal, Ok, Nok, ValueBack).
net —
internet (Email, Ipv4, Ipv6, MacAddr, Url, etc.).
numeric
— validators related to numbers or digits (Digit, Hex, Int, Num, etc.).

Demo application #
The demo application provides a fully working example, focused on demonstrating
exactly four validators in action — Pair, ReqLen, ReqEmail, and Equal.
You can take the code in this demo and experiment with it.
To run the demo application:
git clone https://github.com/dartoos-dev/formdator.git
cd formdator/example/
flutter run -d chrome
copied to clipboard
This should launch the demo application on Chrome in debug mode.

Contribute #
Contributors are welcome!

Open an issue regarding an improvement, a bug you noticed, or ask to be
assigned to an existing one.
If the issue is confirmed, fork the repository, do the changes on a separate
branch and make a Pull Request.
After review and acceptance, the Pull Request is merged and closed.

Make sure the command below passes before making a Pull Request.
dart analyze && sudo dart test
copied to clipboard
References #

Dart Callable classes
TextFormField
build a Flutter form
Mozilla input types
brazilian form masks

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.