ddd-ts-kit/errors-factory-name
Identifiant d'architecture : errors/factory-name. Sévérité par défaut : error dans recommended, error dans strict.
S'applique à : les fichiers de production de domain/errors/ d'un contexte, dans un projet dont la configuration dit "stack.refusals": "factories".
Pourquoi
Section intitulée « Pourquoi »La fabrique est lue par le développeur qui refuse, le code par le client, le mapper, le journal d'audit et les tests. Ils doivent rencontrer les mêmes mots, et ces mots sont ceux du métier : slotTaken et SLOT_TAKEN, jamais create et BOOKING_FAILED.
Une fabrique (factory) est une méthode statique publique d'une classe d'erreur qui appelle refusal(...).
- un nom qui dit qu'une erreur est construite et non quelle règle a refusé :
create,make,of,from,build,new,error,failure,fail,refusal,refuse, ou un nom qui contient un chiffre (error1) - un code qui n'est pas un littéral de chaîne, ou qui n'est pas en constant case (majuscules et tirets bas)
- un code qui n'est pas le nom de la fabrique en constant case, seul ou avec le nom du concept avant ou après :
AppointmentError.notFoundposeNOT_FOUND,APPOINTMENT_NOT_FOUNDouNOT_FOUND_APPOINTMENT
Incorrect :
static slotTaken(calendarId: string) { return AppointmentError.refusal('BOOKING_FAILED', 'The slot is already held.', { calendarId });}Correct :
static slotTaken(calendarId: string) { return AppointmentError.refusal('SLOT_TAKEN', 'The slot is already held.', { calendarId });}Aucune.
rules."errors/factory-name" à off dans ddd-ts-kit.config.json désactive la règle, et // ddd-ts-kit-disable-next-line errors/factory-name -- <reason> désactive une ligne, exactement comme pour ddd-ts-kit check.
Un code déjà publié sous d'autres mots ne peut pas changer : renommez la fabrique d'après lui, ou gardez le nom et désactivez cette ligne avec la raison.
- Un outil ne peut pas décider si un nom est une expression métier : seuls les noms qui ne le sont certainement pas sont refusés.
language/glossary-termtient le nom de la classe. - Le premier appel
refusal(...)de la méthode est celui qui est lu.
Avec le checker de la CLI
Section intitulée « Avec le checker de la CLI »Tenue par ce plugin seul. Qu'un code soit unique dans son contexte relève de errors/code-unique, tenue par le checker.