Files
ben-to/.github/ISSUE_TEMPLATE/05-architecture-no-index-barrels.md
T
kazerlelutin 785e1be2aa
CI / quality (push) Waiting to run
CI / e2e-and-a11y (push) Blocked by required conditions
CI / lighthouse (push) Blocked by required conditions
CI / android-smoke (push) Waiting to run
CI / pull-request-report (push) Blocked by required conditions
Security / codeql (push) Waiting to run
Security / deps-and-secrets (push) Waiting to run
actions
2026-07-21 16:52:43 +02:00

1.6 KiB
Raw Blame History

name, about, title, labels, assignees
name about title labels assignees
Architecture sans barrels index Supprimer les index.ts barrel et verrouiller par règle / CI [Archi] Supprimer les index.ts barrel et verrouiller par règle projet
architecture

Contexte

Les packages exposent des barrels src/index.ts avec export * from "...". Les alias Vite dans apps/web/vite.config.ts pointent vers ces fichiers. Ce pattern complique le suivi des imports réels et la détection de code inutilisé.

Objectif

Supprimer les barrels index.ts, migrer vers des imports explicites, et verrouiller la réintroduction du pattern (règles projet + CI).

Travail technique

  1. Remplacer les alias Vite (et chemins TypeScript si besoin) par des modules canoniques nommés (ex. @ben-to/builder/domain, @ben-to/recipes/catalog) ou par des sous-chemins package.json exports sans fichier nommé index.ts.
  2. Mettre à jour tous les imports (apps/web, packages/**).
  3. Supprimer les anciens **/src/index.ts après migration.

Règles / outillage

  • Étendre .cursor/rules/ben-to-engineering.mdc : pas de nouveau barrel index.ts ; imports depuis modules nommés.
  • Optionnel : ESLint no-restricted-imports ou script scripts/quality/ qui échoue si un **/src/index.ts barrel réapparaît.

Critères dacceptation

  • Plus de export * from dans des index.ts à la racine des packages features/shared concernés.
  • CI (check:quality ou lint) empêche la réintroduction du pattern (selon le niveau de durcissement retenu).

Références

  • apps/web/vite.config.ts
  • packages/features/*/src/index.ts, packages/shared/*/src/index.ts