4.0 KiB
4.0 KiB
Agents pour le système JDR Ecryme (FoundryVTT)
Ce fichier documente les commandes et workflows pour les agents (automatisations, scripts, outils externes) utilisés dans le développement et la maintenance du système Ecryme pour FoundryVTT.
Commandes de développement
Linting et validation
# Vérification du code TypeScript
npm run lint
# Vérification des types
npm run typecheck
# Construction du projet
npm run build
Tests
# Exécution des tests unitaires
npm test
# Exécution des tests avec couverture
npm run test:coverage
Déploiement
# Construction pour la production
npm run build:prod
# Génération du package pour FoundryVTT
npm run package
Workflows recommandés
Avant de soumettre une PR
- Exécuter les tests unitaires
- Vérifier le linting (
npm run lint) - Vérifier les types (
npm run typecheck) - Construire le projet (
npm run build) - Tester manuellement dans FoundryVTT avec les scénarios de test fournis dans
/test-scenarios/
Pour ajouter une nouvelle fonctionnalité
- Créer une branche
feature/<nom-de-la-fonctionnalité> - Ajouter les tests dans
/tests/ - Implémenter la fonctionnalité
- Mettre à jour la documentation dans
/docs/si nécessaire - Soumettre une PR avec une description claire des changements
Structure du projet
/
├── src/ # Code source principal
│ ├── module/ # Définition du module FoundryVTT
│ ├── systems/ # Systèmes de règles spécifiques à Ecryme
│ ├── actors/ # Logique des acteurs (PJs, PNJs, créatures)
│ ├── items/ # Logique des objets (armes, sorts, équipements)
│ └── utils/ # Utilitaires partagés
├── tests/ # Tests unitaires et d'intégration
├── docs/ # Documentation technique et utilisateur
├── templates/ # Templates Handlebar pour les feuilles de personnage
└── test-scenarios/ # Scénarios de test pour FoundryVTT
Conventions de codage
- TypeScript strict : Toujours utiliser les types les plus précis possibles
- Noms de fichiers :
- PascalCase pour les classes (
CharacterSheet.ts) - kebab-case pour les templates (
character-sheet.hbs) - camelCase pour les utilitaires (
diceRoller.ts)
- PascalCase pour les classes (
- Tests :
- Un fichier de test par fichier source (
characterSheet.test.ts) - Couverture minimale de 80% requise pour les PR
- Un fichier de test par fichier source (
Outils spécifiques à FoundryVTT
Génération des templates
# Recompiler les templates Handlebar après modification
npm run build:templates
Validation des données
# Valider la structure des données contre le schéma
npm run validate:schema
Déploiement pour test local
# Lier le module en développement à FoundryVTT (nécessite le module "Module Developer")
npx foundryvtt-link
Dépannage
Problèmes courants
-
Les changements ne s'affichent pas dans Foundry :
- Vérifier que le module est bien lié (
npm run link) - Redémarrer FoundryVTT
- Vider le cache du navigateur (Ctrl+F5)
- Vérifier que le module est bien lié (
-
Erreurs de type dans les templates :
- Exécuter
npm run validate:templates - Vérifier les annotations JSDoc dans les fichiers
.ts
- Exécuter
-
Problèmes de performance :
- Utiliser le profiler de Foundry (F12 > Performance)
- Vérifier les boucles dans les templates Handlebar
Ressources utiles
- Documentation FoundryVTT
- Guide des systèmes personnalisés
- Référence Handlebar
- TypeScript pour Foundry
Contribution
Les contributions sont les bienvenues ! Veuillez :
- Ouvrir une issue pour discuter des changements majeurs
- Suivre les conventions de codage ci-dessus
- Inclure des tests pour les nouvelles fonctionnalités
- Mettre à jour la documentation si nécessaire