HarmonixJS - Framework DiscordJS
HarmonixJS est un framework complet et modulaire destiné à faciliter la création de robots Discord. L'outil est basé sur l'utilisation des décorateurs (annotations) et de la réflexion. Il permet ainsi de créer facilement des fichiers correctement annotés, qui seront ensuite détectés et exécutés automatiquement.


Afin de structurer proprement la logique métier et de séparer clairement les responsabilités au sein d'une application basée sur Harmonix, il est possible d'utiliser les décorateurs Command et Event . Ces décorateurs permettent de déclarer des actions métier de manière explicite, typée et centralisée, tout en évitant une configuration manuelle répétitive. Lorsqu'un décorateur Command est appliqué à une classe, celle-ci est automatiquement enregistrée dans le bus interne et devient exécutable via le système de dispatch fourni par le framework. Cela garantit une architecture orientée intention, où chaque commande représente un cas d'usage clair et isolé.
Concernant les évènements, le décorateur Event va encore plus loin en simplifiant considérablement l'implémentation des handlers. Harmonix se charge automatiquement de relier l'évènement au gestionnaire correspondant et d'injecter les paramètres nécessaires directement dans la méthode execute . Ainsi, les données transportées par l'évènement sont résolues et typées sans configuration additionnelle, ce qui améliore la lisibilité, réduit le risque d'erreur et favorise une forte cohérence dans l'ensemble du système.
Harmonix a été conçu avec une architecture modulaire permettant l'ajout de fonctionnalités complémentaires selon les besoins de l'application. Parmi ces extensions figure le plugin Express, développé afin d'intégrer une couche HTTP complète au sein de l'écosystème Harmonix. Ce module permet de mettre en place une API REST structurée tout en conservant la cohérence architecturale du framework, notamment en matière d'injection de dépendances et d'organisation par responsabilités.
L'intégration du plugin s'effectue simplement par sa déclaration et son initialisation dans le fichier index.ts. Une fois configuré, il devient possible de créer des contrôleurs et de définir des routes HTTP via des décorateurs dédiés tels que @Controller, @Get ou @Post. Cette approche, inspirée des standards modernes du développement backend, favorise une structure claire, maintenable et adaptée à des applications évolutives.


