Files
z3n 558bf763e7 shared: source de vérité unique pour les énums d'API
- API_STATUSES inclut 'NO_YAML' (était manquant alors que le type et le
  code l'utilisent)
- ApiType/ApiStatus/ApiConvention dérivés des constantes (typeof X[number])
  -> plus de double maintenance type <-> tableau
- DTO back réutilisent API_CONVENTIONS/API_TYPES dans @IsIn (fin de la
  triple duplication des valeurs)
- front: déclare la dépendance @datacat/shared (workspace:*)
- shared: exports map + métadonnées + README (double build front/back)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 11:54:27 +00:00
..

@datacat/shared

Types et constantes partagés entre le back (NestJS) et le front (Angular).

Contenu

  • src/types/ — interfaces et types (ApiEntry, Category, réponses d'API…).
  • src/schemas/api-entry.schema.tssource de vérité des énumérations (API_TYPES, API_STATUSES, API_CONVENTIONS). Les types ApiType / ApiStatus / ApiConvention en sont dérivés (typeof X[number]), et la validation back (@IsIn) réutilise ces mêmes constantes. Ajouter une valeur dans le tableau suffit donc à propager type + validation.

Double build (piège récurrent)

Ce paquet est consommé de deux façons différentes :

Consommateur Mécanisme Config
front (Angular) alias TypeScript vers la source tsconfig.json (ES2022) + paths dans front-public/tsconfig.json
back (NestJS) paquet compilé (dist/) en CommonJS tsconfig.build.json (CommonJS) → dist/

⚠️ Le back lit dist/, pas la source. Après toute modification de shared, il faut rebuild avant que le back voie le changement :

pnpm --filter @datacat/shared build
# (le docker-compose le fait déjà : voir infra/docker-compose.yml, étape tsc)

Le front, lui, voit la source directement (pas de rebuild nécessaire).