Optional<T, E> class

Wraps a validator to make it optional - skips validation when empty.

"Empty" is determined by the isEmpty predicate. By default, checks for empty strings.

final validator = Optional<String, String>(
  validator: emailRule,
  isEmpty: (value) => value.isEmpty,
);

// Equivalent to:
final validator = emailRule.optional();
Inheritance
Available extensions

Constructors

Optional({required Formix<T, E> validator, required bool isEmpty(T value)})
Creates an Optional validator.
const

Properties

hashCode int
The hash code for this object.
no setterinherited
isEmpty bool Function(T value)
Predicate that determines if the value should be considered empty. If empty, validation is skipped and returns valid.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
validator Formix<T, E>
The validator to run if value is not empty.
final

Methods

andThen(Formix<T, E> next) Formix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Chains this validator with next, running next only if this passes.
cached() CachedFormix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Wraps this validator with single-value caching.
lazy() LazyFormix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Creates a lazy validator that defers instantiation until first use.
lruCached({int maxSize = 10}) LruCachedFormix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Wraps this validator with LRU (Least Recently Used) caching.
mapError<E2>(E2 mapper(E error)) Formix<T, E2>

Available on Formix<T, E>, provided by the FormixExtensions extension

Maps errors from type E to type E2.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
optional({bool isEmpty(T value)?}) Formix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Makes this validator optional - skips validation when empty.
recover(T onError(List<E> errors)) Formix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Recovers from validation errors with a default value.
tap({void onValid(T value)?, void onInvalid(List<E> errors)?}) Formix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Applies side effects without affecting validation.
toString() String
A string representation of this object.
inherited
validate(T value) ValidationResult<T, E>
Validates value and returns a ValidationResult.
override
when(bool condition(T value)) Formix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Conditionally applies this validator based on condition.
whenNot(bool condition(T value)) Formix<T, E>

Available on Formix<T, E>, provided by the FormixExtensions extension

Conditionally skips this validator based on condition.
withMessageFormatter(ErrorMessageFormatter<E> formatter) Formix<T, String>

Available on Formix<T, E>, provided by the FormixExtensions extension

Maps errors to user-facing messages using formatter.

Operators

operator ==(Object other) bool
The equality operator.
inherited