undocumented-event

Documented events

dispatched events are documented with @fires.

Rule id undocumented-event — run only this rule with banira lint src/*.ts --rules undocumented-event.

Why it matters

Events are part of a component's public API. Documenting each one with a class-level @fires tag puts it in the Custom Elements Manifest — and therefore in the generated types, editor data and docs — so consumers can discover it. banira flags any event it sees dispatched that has no @fires entry.

✗ Flagged

src/my-toggle.ts — event dispatched but undocumented
export class MyToggle extends HTMLElement {
  toggle() {
    this.dispatchEvent(new CustomEvent('change', { detail: { on: this.on } }));
  }
}
customElements.define('my-toggle', MyToggle);

✓ Good

src/my-toggle.ts — @fires documents the event
/**
 * @fires change - when the toggle flips; detail: { on: boolean }
 */
export class MyToggle extends HTMLElement {
  toggle() {
    this.dispatchEvent(new CustomEvent('change', { detail: { on: this.on } }));
  }
}
customElements.define('my-toggle', MyToggle);