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 T properties 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 T properties 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.