jsonHasKeys function

IValidator jsonHasKeys(
  1. Iterable<String> keys, {
  2. String? message,
})

Ensures object has all specified keys (string).

Implementation

IValidator jsonHasKeys(Iterable<String> keys, {String? message}) =>
    $isMap &
    Validator((value) {
      final ok = keys.every((k) => value.containsKey(k));
      return Result(
        isValid: ok,
        value: value,
        expectation: Expectation(
          message: message ?? 'JSON object has keys: ${keys.join(', ')}',
          value: value,
          code: ExpectationCodes.typeMismatch,
          data: {'keys': keys.toList()},
        ),
      );
    });