required function

IValidator required(
  1. IValidator validator
)

Opposite of optional, it will be considered valid if the field is not null and the validator returns valid.

Example

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

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

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

Implementation

IValidator required(IValidator validator) {
  return not(isNull(), message: 'is required') & validator;
}