UNPKG

ruch

Version:

Revolutionary React TypeScript CLI with hexagonal architecture & AI-powered development assistance. Create maintainable, scalable applications with domain-driven design and integrated AI tooling.

148 lines (102 loc) 3.77 kB
# Amélioration de la commande `ruch msw update` ## 🎯 Objectif Permettre la mise à jour des fichiers MSW d'un domaine spécifique lorsque l'utilisateur a modifié ses entités, ports ou adapters. ## ✨ Nouvelle fonctionnalité ### Avant ```bash # Seulement mise à jour générale pour nouveaux domaines ruch msw update ``` ### Après ```bash # Mise à jour générale (comportement existant conservé) ruch msw update # 🆕 Mise à jour d'un domaine spécifique ruch msw update user ruch msw update product ``` ## 🔧 Implémentation ### Modifications apportées 1. **Nouvelle fonction `updateMswDomain`** dans `src/commands/msw.ts` - Valide l'existence du domaine - Crée des sauvegardes spécifiques avec timestamp - Régénère handler et mock data - Demande confirmation utilisateur 2. **Commande CLI mise à jour** dans `src/index.ts` - Paramètre optionnel `[domain]` ajouté - Routage automatique vers la bonne fonction - Aide mise à jour 3. **Documentation enrichie** dans `MSW_COMMANDS.md` - Exemples d'usage spécifique - Workflow mis à jour - Gestion des sauvegardes détaillée ## 🛡️ Sécurité et robustesse ### Validation - ✅ Vérification existence du domaine - ✅ Liste des domaines disponibles en cas d'erreur - ✅ Vérification MSW initialisé ### Sauvegardes automatiques - ✅ Handler : `{domain}.ts.backup.{timestamp}` - ✅ Mock data : `mockData.ts.backup.{timestamp}` - ✅ Messages informatifs sur les sauvegardes ### Confirmation utilisateur - ✅ Demande de confirmation avant écrasement - ✅ Possibilité d'annuler l'opération - ✅ Messages d'avertissement clairs ## 📋 Cas d'usage ### Scenario 1 : Modification d'entité ```typescript // Modification dans src/domains/user/entities/User.ts interface User { id: string; name: string; email: string; role: 'admin' | 'user'; // 🆕 Nouveau champ ajouté avatar?: string; } ``` **Action :** ```bash ruch msw update user ``` **Résultat :** - Handler régénéré avec nouveaux endpoints - Mock data régénéré avec nouveaux champs - Sauvegardes créées pour restauration si besoin ### Scenario 2 : Modification d'adapter ```typescript // Nouveau endpoint ajouté dans UserApiAdapter async getUserPreferences(userId: string): Promise<UserPreferences> ``` **Action :** ```bash ruch msw update user ``` **Résultat :** - Handler MSW synchronisé avec adapter - Mock data mis à jour pour nouveaux types ## 🧪 Tests effectués ### ✅ Tests de fonctionnement - Mise à jour domaine existant (`user`) : ✅ - Gestion domaine inexistant : ✅ - Confirmation utilisateur : ✅ - Création sauvegardes : ✅ - Comportement sans paramètre conservé : ✅ ### ✅ Tests d'erreur - Domaine inexistant → Message d'erreur + liste domaines disponibles - MSW non initialisé → Message d'erreur clair - Annulation utilisateur → Pas de modification ## 🔄 Workflow recommandé 1. **Modifier les fichiers du domaine** (entities, ports, adapters) 2. **Régénérer les mocks** : `ruch msw update {domain}` 3. **Confirmer l'opération** quand demandé 4. **Vérifier les fichiers générés** et ajuster si nécessaire 5. **Restaurer depuis backup** si des modifications custom étaient présentes ## 💡 Avantages - **Efficacité** : Mise à jour ciblée au lieu de tout régénérer - **Sécurité** : Sauvegardes automatiques avec timestamp - **Flexibilité** : Choix entre mise à jour générale ou spécifique - **Robustesse** : Validation et gestion d'erreurs complète - **UX** : Messages clairs et informatifs Cette amélioration rend le CLI Ruch encore plus pratique pour le développement en permettant une synchronisation fine des mocks avec l'évolution du code métier.