- 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>
@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.ts— source de vérité des énumérations (API_TYPES,API_STATUSES,API_CONVENTIONS). Les typesApiType/ApiStatus/ApiConventionen 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).