validateAsync method

Future<JarResult> validateAsync(
  1. T? value, [
  2. Map<String, dynamic>? allValues,
  3. String? path,
  4. Object? root,
])

Implementation

Future<JarResult> validateAsync(T? value,
    [Map<String, dynamic>? allValues, String? path, Object? root]) async {
  final syncResult = validate(value, allValues, path, root);
  if (!syncResult.isValid || asyncTests.isEmpty) return syncResult;

  final issues = <JarIssue>[];
  for (final test in asyncTests) {
    final context = JarTestContext(
        parent: allValues, root: root ?? value, path: path, issues: issues);
    final message = await test(value, context);
    if (message != null) context.addIssue(message);
  }
  if (issues.isEmpty) return syncResult;
  return JarResult(
      isValid: false, error: issues.first.message, issues: issues);
}