ddd-ts-kit/application-handler-shape
Identifiant d'architecture : application/handler-shape (ajouté par ce plugin). Sévérité par défaut : error dans recommended, error dans strict.
S'applique à : les fichiers *.handler.ts sous application/ d'un contexte.
Pourquoi
Section intitulée « Pourquoi »Un gestionnaire (handler) est un cas d'usage : une classe, appelée par le bus par execute. Une seconde méthode publique est un second cas d'usage caché dans le premier, ou une décision métier qui revient au domaine.
- un fichier de gestionnaire qui n'exporte aucune classe
- une seconde classe exportée
- une classe de gestionnaire sans
executepublic - toute autre méthode publique ou propriété de type fonction, statiques comprises
Incorrect :
export class IssueInvoiceHandler { async handle(command: IssueInvoiceCommand): Promise<string> {} computeTotal(): number {}}Correct :
export class IssueInvoiceHandler implements CommandHandler<IssueInvoiceCommand> { async execute(command: IssueInvoiceCommand): Promise<string> {} private total(): number {}}Les types, interfaces et constantes exportés à côté de la classe sont permis. Les fichiers *.event-handler.ts ne sont pas des gestionnaires du bus et ne sont pas jugés.
Aucune.
rules."application/handler-shape" à off dans ddd-ts-kit.config.json désactive la règle, et // ddd-ts-kit-disable-next-line application/handler-shape -- <reason> désactive une ligne, exactement comme pour ddd-ts-kit check.
- La signature de
executen'est pas vérifiée par rapport au type de la commande ou de la requête : le compilateur le fait parCommandHandler<T>etQueryHandler<T>.
Avec le checker de la CLI
Section intitulée « Avec le checker de la CLI »Nouveau avec ce plugin : le checker de la CLI n'a pas d'équivalent, car la forme d'une classe demande un arbre syntaxique.