Bonjour à tous,

Je souhaiterais vous présenter libmodulor, une petite bibiliothèque sur laquelle je travaille sur mon temps libre.
Elle permet de créer des applications TypeScript "platform-agnostic". C'est-à-dire qu'elle permet de définir un socle applicatif commun, que l'on peut réutiliser sur plusieurs plateformes.

Ça fonctionne suivant quatre couches (non, attendez, ne fuyez pas tout de suite ) :

- UseCase : c'est une fonctionnalité. Exemples : SignIn, CreatePost, TransferAccount, InviteContacts...
- App : c'est une groupement logique de use cases, partageant un manifeste et des traductions communes. Exemples : Auth, Accounting, CMS...
- Product : c'est un grouepement logique d'apps, faisant un produit final. Exemples : GitHub, Facebook, LinkedIn, Airbnb...
- Target : c'est le plateforme "technique" qui expose le produit. Exemples : server-node-express, server-node-hono, server-nextjs, cli-node, spa-react, react-native...

Comme vous pouvez le voir, ce n'est pas un énième framework JavaScript. libmodulor est full-stack et ne fait aucun choix sur les outils techniques.
Vous êtes libres de choisir express, hono, fastify... (côté server) et react, angular, vue... (côté client).
libmodulor offre juste des adaptateurs par défaut, principalement parce que ce sont ceux que j'utilise régulièrement (express, hono, react, react-native).

La bibiothèque offre également du testing automatique ainsi que de la génération de doc automatique, entre autres.

Comme vous pouvez le voir, ce n'est pas "simple" et ça n'est donc pas destiné aux applications "simples".
Mais plus aux applications métier que l'on voudrait construire en TypeScript, nécessitant un cadre très bien défini.
D'autant que libmodulor est entièrement basée sur l'injection de dépendances afin d'assurer une architecture "platform-agnostic".

Voilà je suis preneur de vos retours constructifs, bug, améliorations. Il y a encore énormément à faire .
Et bien sûr je me ferai un plaisir de vous aider si vous bloquez sur quelque chose.

Pour en savoir plus :

- Documentation : https://libmodulor.c100k.eu
- GitHub : https://github.com/c100k/libmodulor
- Playground : https://libmodulor.c100k.eu/docs/examples/Playground