Aller au contenu

ddd-ts-kit/events-name-format

Identifiant d'architecture : events/name-format. Sévérité par défaut : error dans recommended, error dans strict.

S'applique à : domain/events/ et published-language/ d'un contexte, tests exclus.

Le nom d'un événement est une adresse publique : les consommateurs s'y abonnent, le catalogue le liste. <context>.<aggregate>.<fact> dit à qui il appartient et ce qui s'est passé.

  • dans domain/events/ : une propriété ou une clé d'objet eventName ou name dont la chaîne n'est pas <this context>.<aggregate>.<fact> en kebab-case
  • dans published-language/ : le type donné à defineIntegrationEvent, et tout autre type qui contient une chaîne à points

Incorrect :

export class InvoiceIssued implements DomainEvent {
static readonly eventName = 'InvoiceIssued';
readonly name = InvoiceIssued.eventName;
}

Correct :

export class InvoiceIssued implements DomainEvent {
static readonly eventName = 'billing.invoice.issued';
readonly name = InvoiceIssued.eventName;
}

Les littéraux de gabarit (template literals) sans interpolation sont lus comme des chaînes. Le nom est déclaré une fois, dans eventName, que l'événement porte dans name et que ses réactions lisent (@DomainEventHandler(InvoiceIssued)) ; un readonly name = '..' écrit en toutes lettres, comme avant la 0.6, est jugé de la même façon.

Aucune.

rules."events/name-format" à off dans ddd-ts-kit.config.json désactive la règle, et // ddd-ts-kit-disable-next-line events/name-format -- <reason> désactive une ligne, exactement comme pour ddd-ts-kit check.

  • La forme et le préfixe du contexte sont vérifiés, pas la grammaire du fait (le temps passé est vérifié par le générateur).
  • Un nom construit à l'exécution (${context}.invoice.issued) n'est pas lu.
  • Qu'un événement d'intégration soit déclaré une fois, avec un contenu (payload), c'est ddd-ts-kit check qui le vérifie (events/defined-in-published-language).

ddd-ts-kit check signale le même identifiant et possède la règle compagne events/defined-in-published-language. Cette règle fait autorité pour le format.