Validateurs
Les validateurs déterminent si une valeur est acceptable. Ils peuvent être synchrones ou asynchrones.
Types de retour
Un validateur peut renvoyer :
true— la valeur est valide.{ valid: true }— la valeur est valide.{ valid: false, reason: string }— la valeur est invalide avec une raison.false— la valeur est invalide (utilise la raison par défaut).
Loading playground…
Validateurs asynchrones
async function makeSureUsernameIsUnique(username: string) {
const existing = await usersDb.findByUsername(username);
return existing ? { valid: false, reason: 'Ce nom d\'utilisateur est déjà pris' } : true;
}
Validateurs multiples
Vous pouvez passer un tableau de validateurs. Ils s'exécutent dans l'ordre et doivent tous réussir.
b.required('username').validate([validateUsername, makeSureUsernameIsUnique]);
Re-validateurs
Les re-validateurs s'exécutent lors des mises à jour. S'ils ne sont pas fournis, le validateur de création est réutilisé.
b.required('username').validate(validateUsername).reValidate(validateUsernameUpdate);
Valeurs autorisées
Comme alternative à un validateur, vous pouvez restreindre un champ à un ensemble fixe de valeurs :
b.required('role').allow(['admin', 'editor', 'viewer']);