optional function
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();