lucid_validation library
LucidValidation
A Dart/Flutter package for building strongly typed validation rules, inspired by FluentValidation. Created by the Flutterando community, this package aims to provide a flexible and powerful way to validate your models in Flutter and Dart projects.
Features
- Strongly typed validation rules.
- Fluent API for defining validations.
- Extensible with custom validators.
- Easy to integrate with any Dart or Flutter project.
Example
import 'package:lucid_validation/lucid_validation.dart';
class UserModel {
String email;
String password;
int age;
String phone;
UserModel({
required this.email,
required this.password,
required this.age,
required this.phone,
});
factory UserModel.empty() => UserModel(email: '', password: '', age: 18, phone: '');
}
class UserValidation extends LucidValidation<UserModel> {
UserValidation() {
ruleFor((user) => user.email, key: 'email')
.notEmpty()
.validEmail();
ruleFor((user) => user.password, key: 'password')
.customValidPassword();
ruleFor((user) => user.age, key: 'age')
.min(18, message: 'Minimum age is 18 years');
ruleFor((user) => user.phone, key: 'phone')
.customValidPhone('Phone invalid format');
}
}
For more details, check out the full documentation and examples.
Classes
- Culture
- DefaultLanguageManager
- EnglishLanguage
- Language
- LanguageManager
- LucidValidation
-
LucidValidationBuilder<
TProp, Entity> -
LucidValidator<
E> -
Abstract class for creating validation logic for a specific entity type
E. - ValidationResult
- Represents the result of a validation rule.
Enums
- CascadeMode
- Defines the behavior of rule execution when a validation failure occurs.
Extensions
-
EqualValidation
on LucidValidationBuilder<
T, E> -
Extension on LucidValidationBuilder for
Tproperties to add an equality validation. -
ExclusiveBetweenDatetimeNullableValidation
on SimpleValidationBuilder<
DateTime?> -
ExclusiveBetweenDatetimeOrNullableValidation
on SimpleValidationBuilder<
DateTime?> -
ExclusiveBetweenDatetimeValidation
on SimpleValidationBuilder<
DateTime> - Extension on LucidValidationBuilder for DateTime properties to add a exclusive between validation.
-
GreaterThanDateTimeNullableValidation
on SimpleValidationBuilder<
DateTime?> -
GreaterThanDateTimeOrNullableValidation
on SimpleValidationBuilder<
DateTime?> -
GreaterThanDateTimeValidation
on SimpleValidationBuilder<
DateTime> - Extension on LucidValidationBuilder for DateTime properties to add a greater than validation.
-
GreaterThanNullablealidation
on SimpleValidationBuilder<
num?> -
GreaterThanOrEqualToDateTimeNullableValidation
on SimpleValidationBuilder<
DateTime?> -
GreaterThanOrEqualToDateTimeOrNullableValidation
on SimpleValidationBuilder<
DateTime?> -
GreaterThanOrEqualToDateTimeValidation
on SimpleValidationBuilder<
DateTime> - Extension on LucidValidationBuilder for DateTime properties to add a greater than validation.
-
GreaterThanOrNullableValidation
on SimpleValidationBuilder<
num?> -
GreaterThanValidation
on SimpleValidationBuilder<
num> - Extension on LucidValidationBuilder for num properties to add a greater than validation.
-
InclusiveBetweenDatetimeNullableValidation
on SimpleValidationBuilder<
DateTime?> -
InclusiveBetweenDatetimeOrNullableValidation
on SimpleValidationBuilder<
DateTime?> -
InclusiveBetweenDatetimeValidation
on SimpleValidationBuilder<
DateTime> - Extension on LucidValidationBuilder for DateTime properties to add a inclusive between validation.
-
IsEmptyNullableValidation
on SimpleValidationBuilder<
String?> -
IsEmptyOrNullableValidation
on SimpleValidationBuilder<
String?> -
IsEmptyValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add an empty string validation.
-
IsNotNullValidation
on SimpleValidationBuilder<
T?> -
Extension on LucidValidationBuilder for
T?properties to add a not null validation. -
IsNullValidation
on SimpleValidationBuilder<
T?> -
Extension on LucidValidationBuilder for
T?properties to add a null validation. -
LessThanDatetimeNullableValidation
on SimpleValidationBuilder<
DateTime?> -
LessThanDatetimeOrNullableValidation
on SimpleValidationBuilder<
DateTime?> -
LessThanDatetimeValidation
on SimpleValidationBuilder<
DateTime> - Extension on LucidValidationBuilder for DateTime properties to add a less than validation.
-
LessThanNullableValidation
on SimpleValidationBuilder<
num?> -
LessThanOrEqualToDatetimeNullableValidation
on SimpleValidationBuilder<
DateTime?> -
LessThanOrEqualToDatetimeOrNullableValidation
on SimpleValidationBuilder<
DateTime?> -
LessThanOrEqualToDatetimeValidation
on SimpleValidationBuilder<
DateTime> - Extension on LucidValidationBuilder for DateTime properties to add a less than validation.
-
LessThanOrNullableValidation
on SimpleValidationBuilder<
num?> -
LessThanValidation
on SimpleValidationBuilder<
num> - Extension on LucidValidationBuilder for num properties to add a less than validation.
-
MatchesPatternNullableValidation
on SimpleValidationBuilder<
String?> -
MatchesPatternOrNullableValidation
on SimpleValidationBuilder<
String?> -
MatchesPatternValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a regex pattern match validation.
-
MaxLengthNullableValidation
on SimpleValidationBuilder<
String?> -
MaxLengthOrNullableValidation
on SimpleValidationBuilder<
String?> -
MaxLengthValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a maximum length validation.
-
MaxNullableValidation
on SimpleValidationBuilder<
num?> -
MaxOrNullableValidation
on SimpleValidationBuilder<
num?> -
MaxValidation
on SimpleValidationBuilder<
num> - Extension on LucidValidationBuilder for num properties to add a maximum value validation.
-
MinLengthNullableValidation
on SimpleValidationBuilder<
String?> -
MinLengthOrNullableValidation
on SimpleValidationBuilder<
String?> -
MinLengthValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a minimum length validation.
-
MinNullableValidation
on SimpleValidationBuilder<
num?> -
MinOrNullableValidation
on SimpleValidationBuilder<
num?> -
MinValidation
on SimpleValidationBuilder<
num> - Extension on LucidValidationBuilder for num properties to add a minimum value validation.
-
MustHaveLowercaseNullableValidation
on SimpleValidationBuilder<
String?> -
MustHaveLowercaseOrNullableValidation
on SimpleValidationBuilder<
String?> -
MustHaveLowercaseValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a lowercase letter validation.
-
MustHaveNumbersNullableValidation
on SimpleValidationBuilder<
String?> -
MustHaveNumbersOrNullableValidation
on SimpleValidationBuilder<
String?> -
MustHaveNumbersValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a numeric character validation.
-
MustHaveSpecialCharacterNullableValidation
on SimpleValidationBuilder<
String?> -
MustHaveSpecialCharacterOrNullableValidation
on SimpleValidationBuilder<
String?> -
MustHaveSpecialCharacterValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a special character validation.
-
MustHaveUppercaseNullableValidation
on SimpleValidationBuilder<
String?> -
MustHaveUppercaseOrNullableValidation
on SimpleValidationBuilder<
String?> -
MustHaveUppercaseValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add an uppercase letter validation.
-
NotEmptyNullableValidation
on SimpleValidationBuilder<
String?> -
NotEmptyOrNullableValidation
on SimpleValidationBuilder<
String?> -
NotEmptyValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a not empty validation.
-
NotEqualValidation
on LucidValidationBuilder<
T, E> -
Extension on LucidValidationBuilder for
Tproperties to add a non-equality validation. -
RangeNullableValidation
on SimpleValidationBuilder<
num?> -
RangeOrNullableValidation
on SimpleValidationBuilder<
num?> -
RangeValidation
on SimpleValidationBuilder<
num> - Extension on LucidValidationBuilder for num properties to add a range validation.
-
RepeatedCharactersNullableValidator
on SimpleValidationBuilder<
String?> - Extension on SimpleValidationBuilder for nullable String? properties to add validation against sequential repeated characters.
-
RepeatedCharactersOrNullValidator
on SimpleValidationBuilder<
String?> - Extension on SimpleValidationBuilder for nullable String? properties that allows either a valid string with no repeated characters or null.
-
RepeatedCharactersValidator
on SimpleValidationBuilder<
String> - Extension on SimpleValidationBuilder for String properties to add validation against sequential repeated characters.
-
SequentialCharactersNullableValidator
on SimpleValidationBuilder<
String?> - Extension on SimpleValidationBuilder for nullable String? properties to add validation against sequential characters.
-
SequentialCharactersOrNullValidator
on SimpleValidationBuilder<
String?> - Extension on SimpleValidationBuilder for nullable String? properties that allows either a valid string with no sequential characters or null.
-
SequentialCharactersValidator
on SimpleValidationBuilder<
String> - Extension on SimpleValidationBuilder for String properties to add validation against sequential characters.
-
ValidCEPNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCEPOrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCEPValidation
on SimpleValidationBuilder<
String> -
ValidCnpjNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCnpjOrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCnpjValidation
on SimpleValidationBuilder<
String> -
ValidCPFNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCpfOrCnpjNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCpfOrCnpjOrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCpfOrCnpjValidation
on SimpleValidationBuilder<
String> -
ValidCPFOrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCPFValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a valid CPF validation.
-
ValidCreditCardNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCreditCardOrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidCreditCardValidation
on SimpleValidationBuilder<
String> -
ValidEmailNullableValidation
on SimpleValidationBuilder<
String?> -
ValidEmailOrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidEmailValidation
on SimpleValidationBuilder<
String> - Extension on LucidValidationBuilder for String properties to add a valid email validation.
-
ValidPhoneNullableValidation
on SimpleValidationBuilder<
String?> -
ValidPhoneOrNullableValidation
on SimpleValidationBuilder<
String?> -
ValidPhoneValidation
on SimpleValidationBuilder<
String> -
A validation extension for
SimpleValidationBuilder<String>that provides methods to validate Brazilian phone numbers, both with and without country code.
Functions
-
extractClassName(
String input) → String
Typedefs
-
RuleFunc<
Entity> = ValidationException? Function(Entity entity) -
Builder class used to define validation rules for a specific property type
TProp. -
SimpleValidationBuilder<
T> = LucidValidationBuilder< T, dynamic>
Exceptions / Errors
- ValidationException
- Represents an error that occurs during validation.