object method

ValidatorBuilder object(
  1. String field,
  2. Map<String, dynamic>? value, {
  3. bool required = false,
  4. required ValidationResult validator(
    1. ValidatorBuilder
    ),
})

Nested object validation

Implementation

ValidatorBuilder object(
  String field,
  Map<String, dynamic>? value, {
  bool required = false,
  required ValidationResult Function(ValidatorBuilder) validator,
}) {
  final fullField = _prefix != null ? '$_prefix.$field' : field;
  final nestedBuilder = ValidatorBuilder(fullField);

  if (required && value == null) {
    _errors.add(ValidationError('$fullField is required'));
  } else if (value != null) {
    final nestedResult = validator(nestedBuilder);
    for (final error in nestedResult.errors) {
      _errors.add(ValidationError(error));
    }
  }

  _schema['properties'][field] = nestedBuilder._schema;

  return this;
}