validate method

SchemaValidationResult validate(
  1. List<String> path,
  2. Object? value
)

Implementation

SchemaValidationResult validate(List<String> path, Object? value) {
  if (value == null) {
    return optional
        ? SchemaValidationResult.valid(path)
        : SchemaValidationResult.requiredPropMissing(path);
  }

  final valueType = tryParse(value);

  if (valueType == null) {
    return SchemaValidationResult.invalidType(path, value, V.toString());
  }

  for (final validator in validators) {
    final error = validator.validate(valueType);
    if (error != null) {
      return SchemaValidationResult.constraints(path, error.message);
    }
  }

  return SchemaValidationResult.valid(path);
}