À propos du projet

@node-ts/bus est une bibliothèque TypeScript conçue pour simplifier le développement d'applications résilientes basées sur les messages. Elle abstrait les détails techniques du transport de bus sous-jacent, permettant aux développeurs de se concentrer sur la création de systèmes faiblement couplés avec un minimum de code répétitif. La bibliothèque permet aux développeurs de définir des messages et des gestionnaires de messages, tout en gérant automatiquement le transport des messages, les abonnements et les nouvelles tentatives. En cas d'échec, les messages sont renvoyés à la file d'attente pour une nouvelle tentative, ce qui favorise la résilience de l'application. Elle fournit également des workflows de messages (sagas) pour coordonner plusieurs messages et gestionnaires dans des processus de longue durée, rendant les applications plus robustes, auto-réparatrices et résistantes à la perte ou à la corruption de données. Nécessite Node.js 24 ou version ultérieure. ## Composants Le projet est un monorepo composé de plusieurs packages : - **@node-ts/bus-core** : bibliothèque de bus principale pour l'envoi et la réception de messages et la gestion des workflows - **@node-ts/bus-messages** : définitions des types de messages pour définir vos propres messages, événements et commandes - **@node-ts/bus-class-serializer** : sérialiseur JSON qui convertit en instances de classe - **@node-ts/bus-postgres** : adaptateur de persistance Postgres - **@node-ts/bus-mongodb** : adaptateur de persistance MongoDB - **@node-ts/bus-rabbitmq** : adaptateur de transport RabbitMQ - **@node-ts/bus-sqs** : adaptateur de transport Amazon SQS ## Développement Pour les contributeurs, le dépôt utilise `pnpm` pour la prise en charge des monorepos et des workspaces. Les scripts principaux incluent : - `bootstrap` : installer les dépendances dans tous les packages et les hisser à la racine - `build` : compiler tous les packages - `build:watch` : compiler tous les packages et surveiller les modifications avec des builds incrémentiels - `clean` : supprimer tous les dossiers dist et node_modules - `lint` : exécuter ESLint (typescript-eslint, type-aware) sur le dépôt - `format` : formater avec prettier - `test` : exécuter les tests unitaires et d'intégration - `test:watch` : exécuter les tests en mode watch La documentation est disponible à l'adresse [https://bus.node-ts.com](https://bus.node-ts.com), et les questions peuvent être posées dans les GitHub Discussions.