Refonte qualité (shared / back / front) #1
Reference in New Issue
Block a user
Delete Branch "chore/quality-refonte"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Refonte qualité (shared / back / front)
Tour de l'app suivi d'une refonte qualité. 14 commits, chacun vérifié (typecheck, tests, build, runtime). Aucun changement fonctionnel régressif.
shared
API_STATUSES(NO_YAMLmanquant) ; types dérivés des constantes ; dédup de la validation ; dépendance front déclarée +exportsmap.back (NestJS)
setCurrent, fix N+1 sur le comptage des catégories.console.*→Logger; I/O upload en async.@ValidateIf).synchronize:falsesans migrations). Dev inchangé (synchronize:true).front (Angular 19)
takeUntilDestroyed) sur tous les composants.ErrorService+ interceptor HTTP fonctionnel ;withInterceptors.@gouvfr/dsfrendependencies; correction d'un build cassé préexistant (formValuesprivé utilisé en template).<app-breadcrumb>mutualisé ; templates inline géants extraits en.html(upload900→427 l.,api-detail700→330 l.) ; garde-fou de taille de fichier à l'upload.Reste hors périmètre (volontairement)
Décomposition profonde de
upload/api-detailen sous-composants, styles inline → SCSS, relations/cascade + bascule devsynchronize:false(stateful), durcissement sécurité (déprioritisé, interne/dev).🤖 Generated with Claude Code
- ConfigModule.forRoot({ validate }) : schéma class-validator des variables d'env, l'app refuse de démarrer si une var manque/mal typée ; suppression des fallbacks de credentials DB (getOrThrow) - setCurrent() enveloppé dans une transaction (plus de fenêtre incohérente sur isCurrent entre les 2 updates) - browse() : compteurs de toutes les catégories en 2 requêtes + calcul en mémoire au lieu d'un N+1 récursif par enfant - console.* -> Logger Nest partout (apis, uploads, seeder, bootstrap) ; .catch(console.error) -> logger.error avec contexte Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>- src/environments/{environment,environment.prod}.ts + fileReplacements : baseUrl API configurable au lieu de '/api' hardcodé dans les services - ErrorService + errorInterceptor (HttpInterceptorFn) ; app.config passe à withInterceptors([...]) (remplace withInterceptorsFromDi legacy) - @gouvfr/dsfr déplacé en dependencies (chargé au runtime) - api.service: extrait ValidateResponse (dédup du type inline) - fix: formValues passe en protected (utilisé dans le template -> build NG1 cassé, le conteneur servait un ancien bundle) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.