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.

191 lines (133 loc) 5.02 kB
# Commandes MSW pour Ruch CLI ## Vue d'ensemble Les nouvelles commandes MSW (Mock Service Worker) ont été ajoutées au CLI Ruch pour faciliter l'intégration et la gestion des mocks dans les projets suivant l'architecture hexagonale. ## Commandes disponibles ### `ruch msw init` Initialise la configuration MSW dans le projet. **Ce qui est créé :** - `src/mocks/setup.ts` - Configuration principale MSW - `src/mocks/browser.ts` - Configuration pour l'environnement navigateur/développement - `src/mocks/server.ts` - Configuration pour l'environnement Node.js/tests - `src/mocks/handlers/index.ts` - Index des handlers (vide initialement) - `src/setupTests.ts` - Configuration globale des tests avec MSW **Exemple d'utilisation :** ```bash ruch msw init ``` ### `ruch msw handlers` Génère les handlers MSW pour tous les domaines existants. **Ce qui est créé :** - Un fichier handler par domaine dans `src/mocks/handlers/` - Mise à jour de l'index des handlers - Création des dossiers `mocks/` dans chaque domaine - Endpoints CRUD complets pour chaque domaine **Exemple d'utilisation :** ```bash ruch msw handlers ``` ### `ruch msw mocks` Génère les données mock pour tous les domaines. **Ce qui est créé :** - `src/domains/{domain}/mocks/mockData.ts` pour chaque domaine - Classes de gestion des données mock avec méthodes CRUD - Données d'exemple pour chaque domaine **Exemple d'utilisation :** ```bash ruch msw mocks ``` ### `ruch msw update [domain]` Met à jour la configuration MSW avec les domaines manquants, ou régénère les fichiers MSW pour un domaine spécifique. **Utilisation générale (sans paramètre) :** - Détecte les nouveaux domaines créés - Crée des sauvegardes des fichiers existants avec timestamp - Demande confirmation avant modification - Génère les handlers manquants - Met à jour l'index des handlers **Utilisation pour un domaine spécifique :** - Régénère le handler MSW du domaine - Régénère les données mock du domaine - Crée des sauvegardes avec timestamp - Demande confirmation avant écrasement - Utile après modification des entities, ports, ou adapters **Exemples d'utilisation :** ```bash # Mise à jour générale pour nouveaux domaines ruch msw update # Régénération pour un domaine spécifique ruch msw update user ruch msw update product ``` ## Workflow recommandé 1. **Initialisation du projet :** ```bash ruch msw init bun add -D msw bunx msw init public/ --save ``` 2. **Génération des handlers et mocks :** ```bash ruch msw handlers ruch msw mocks ``` 3. **Après création de nouveaux domaines :** ```bash ruch create new-domain ruch msw update ruch msw mocks ``` 4. **Après modification d'entities/ports/adapters d'un domaine :** ```bash # Régénérer les mocks pour le domaine modifié ruch msw update user ``` ## Structure générée ``` src/ ├── mocks/ │ ├── setup.ts # Configuration principale │ ├── browser.ts # Setup navigateur │ ├── server.ts # Setup Node.js/tests │ └── handlers/ │ ├── index.ts # Index des handlers │ ├── user.ts # Handlers du domaine user │ ├── product.ts # Handlers du domaine product │ └── ... ├── domains/ │ ├── user/ │ │ ├── mocks/ │ │ │ └── mockData.ts # Données mock du domaine │ │ └── ... │ └── ... └── setupTests.ts # Configuration globale des tests ``` ## Fonctionnalités avancées ### Gestion des sauvegardes La commande `update` crée automatiquement des sauvegardes avec timestamp : **Pour mise à jour générale :** - `setup.ts.backup.{timestamp}` - `browser.ts.backup.{timestamp}` - `server.ts.backup.{timestamp}` **Pour domaine spécifique :** - `{domain}.ts.backup.{timestamp}` (handler) - `mockData.ts.backup.{timestamp}` (données mock) ### Détection intelligente - Évite d'écraser les fichiers existants - Détecte automatiquement les nouveaux domaines - Mise à jour incrémentale des configurations ### Types TypeScript Tous les templates générés utilisent TypeScript avec : - Interfaces typées pour les entités - JSDoc pour la documentation - Types stricts pour les méthodes CRUD ## Intégration avec MSW v2.x (2025) Les templates utilisent la dernière version de MSW avec : - `http` et `HttpResponse` pour les handlers - `setupWorker` et `setupServer` - Configuration moderne pour navigateur et Node.js - Gestion d'erreurs améliorée ## Notes importantes - Les commandes respectent l'architecture hexagonale de Ruch - Les paths utilisent `src/domains/` (pluriel) comme configuré dans le projet - Les handlers sont automatiquement ajoutés à l'index - Les données mock sont générées avec des exemples réalistes - Compatible avec les patterns React Query utilisés dans les hooks de domaine