From 61cbb4645cb86f80dc4a4a8039c63d17514347ff Mon Sep 17 00:00:00 2001 From: Simon Pham Date: Tue, 13 Aug 2024 14:12:20 +0700 Subject: [PATCH 1/2] feat: update RequiredValidator to support validate empty Map, List, Set, Iterable types --- lib/src/validators/required_validator.dart | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/src/validators/required_validator.dart b/lib/src/validators/required_validator.dart index 13f3367a..13fea9f4 100644 --- a/lib/src/validators/required_validator.dart +++ b/lib/src/validators/required_validator.dart @@ -14,8 +14,16 @@ class RequiredValidator extends Validator { if (control.value == null) { return error; - } else if (control.value is String) { - return (control.value as String).trim().isEmpty ? error : null; + } else if (control.value case String string) { + return string.trim().isEmpty ? error : null; + } else if (control.value case Map value) { + return value.isEmpty ? error : null; + } else if (control.value case List value) { + return value.isEmpty ? error : null; + } else if (control.value case Set value) { + return value.isEmpty ? error : null; + } else if (control.value case Iterable value) { + return value.isEmpty ? error : null; } return null; From 54cc8c55554877eed946cefeaa9e2c5737cb3e41 Mon Sep 17 00:00:00 2001 From: Simon Pham Date: Sat, 14 Jun 2025 16:28:00 +0700 Subject: [PATCH 2/2] refactor: remove redundant checks --- lib/src/validators/required_validator.dart | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/src/validators/required_validator.dart b/lib/src/validators/required_validator.dart index 13fea9f4..64d9cd29 100644 --- a/lib/src/validators/required_validator.dart +++ b/lib/src/validators/required_validator.dart @@ -18,10 +18,6 @@ class RequiredValidator extends Validator { return string.trim().isEmpty ? error : null; } else if (control.value case Map value) { return value.isEmpty ? error : null; - } else if (control.value case List value) { - return value.isEmpty ? error : null; - } else if (control.value case Set value) { - return value.isEmpty ? error : null; } else if (control.value case Iterable value) { return value.isEmpty ? error : null; }