validate method

ConfigValidation validate(
  1. Map<String, dynamic> config
)

Validate a flat config map against this schema, returning a ConfigValidation with accumulated errors.

Implementation

ConfigValidation validate(Map<String, dynamic> config) {
  final errors = <String>[];
  for (final entry in entries.values) {
    if (config.containsKey(entry.key)) {
      final raw = config[entry.key];
      if (entry.validator != null) {
        try {
          if (!entry.validator!(raw)) {
            errors.add('${entry.key}: value "$raw" failed validation');
          }
        } catch (e) {
          errors.add('${entry.key}: validator threw — $e');
        }
      }
    }
  }
  return ConfigValidation(isValid: errors.isEmpty, errors: errors);
}