equalTo method
Implementation
JarObject equalTo(String field, [String? message]) {
return addValidator((value) {
if (value == null) return null;
final otherValue = getFieldValue(field);
if (otherValue is! Map<String, dynamic>?) return null;
if (otherValue == null) return null;
if (!_haveSameKeys(value, otherValue)) {
return message ?? 'Must be equal to $field';
}
for (final key in value.keys) {
final val1 = value[key];
final val2 = otherValue[key];
if (val1 is Map<String, dynamic> && val2 is Map<String, dynamic>) {
if (!_areObjectsEqual(val1, val2)) {
return message ?? 'Must be equal to $field';
}
} else if (val1 is List && val2 is List) {
if (!_areListsEqual(val1, val2)) {
return message ?? 'Must be equal to $field';
}
} else if (val1 != val2) {
return message ?? 'Must be equal to $field';
}
}
return null;
});
}