optional function

IValidator optional(
  1. IValidator validator
)

If the field is not present, it will be considered valid, if present, it executes the validator. It's different from nullable in that it also checks for empty strings

Example

final isValid = optional(isString()).isValid('');    // true
final isValid = optional(isString()).isValid(false); // false
final isValid = optional(isString()).isValid(null);  // false

final validListField = eskema({
  'optional': optional(isString()),
});

validListField.isValid({'optional': 'test'});  // true
validListField.isValid({'optional': ''});      // true
validListField.isValid({'optional ': null});   // false
// If the field is missing from a map, it's considered valid.
validListField.isValid({});                    // true

Implementation

IValidator optional(IValidator validator) => validator.optional();