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>
This commit is contained in:
31
shared/README.md
Normal file
31
shared/README.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# @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 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 :
|
||||
|
||||
```sh
|
||||
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).
|
||||
Reference in New Issue
Block a user