Vous pouvez commencer à ranger vos vieilles libs de CLI. Pas parce que le monde avait absolument besoin d’une énième lib de commande. Mais parce que @duplojs/server-utils a maintenant son propre système de commandes au standard DuploJS. Et franchement, quand on a déjà utilisé des libs comme commander, mri et compagnie, il était nécessaire de remettre le sujet sur la table. Ici, la promesse n’est pas de réinventer la roue. La promesse, c’est surtout d’avoir une roue plus cohérente, plus typée, et plus agréable à composer : → des options/sujet parsées nativement avec les DataParsers → la possibilité de construire une simple commande ou un CLI complet → une DX pensée comme un arbre de commandes descendant → un système de documentation automatique (--help généré) Autrement dit : tu ne déclares pas juste des flags et des strings. Tu décris une commande avec ses options, ses sous-commandes, ses arguments, et leur parsing typé directement au même endroit. Le point vraiment satisfaisant, pour moi, c’est l’intégration des DataParsers. Une option peut parser une string, une literal union, un tableau, ou une structure plus complexe. Petit bonus non négociable : c’est cross-platform. La même API tourne sur Node, Deno et Bun. Brefff, une petite lib de commande, pas là pour faire du bruit, mais largement capable de remplacer pas mal de bricolage existant. Documentation: https://lnkd.in/eJ8mPbvC En coopération avec Mathieu Campani et DuploJS. Ce post a été corrigé par une IA. #TypeScript #NodeJS #Bun #Deno #CLI #DX #DeveloperExperience #OpenSource #TypeSafety #DuploJS #Tooling
About us
DuploJS is an ecosystem designed to provide TypeScript developers with a comprehensive, coherent, and fully end-to-end type-safe toolbox. We set a clear, opinionated direction and stick to it, ensuring that everything is both robust and agnostic of the underlying environment. In other words, DuploJS adapts to your platform—Node (Deno, or even the browser), so you’re never locked into a single runtime. What You'll Find Here Type-Safe End-to-End: From user input all the way through to your business logic, everything is strongly typed and consistent. Unified and Agnostic Ecosystem: Regardless of your environment, our tools remain consistent and adaptable through modular connectors, freeing you from environment-specific constraints. An Opinionated Approach: We set clear guidelines inspired by DDD and functional programming to ensure a smooth, predictable development experience.
- Website
-
https://utils.duplojs.dev
External link for DuploJS
- Industry
- Software Development
- Company size
- 2-10 employees
- Type
- Nonprofit
- Founded
- 2025
- Specialties
- Typescript
Employees at DuploJS
Updates
-
Une app serveur qui démarre avec une config invalide n’est pas prête à démarrer. On parle souvent des env comme d’un détail, alors que c’est le socle de l’app: PORT, URLs, credentials, etc. Pourquoi parser les envs au démarrage ? - **process.env** ne renvoie que des strings - une valeur manquante/invalide doit bloquer le démarrage - une erreur de config doit être visible tout de suite, au bon endroit Et il y a un vrai bonus DX: le pretty error C’est plus simple de lire une erreur de parser qui dit clairement “telle variable manque” ou “telle valeur est invalide”, plutôt que de débugger un crash plus loin dans l’app. Au final, ça enlève de la charge mentale. C’est exactement ce que fait environmentVariableOrThrow dans @duplojs/server-utils: - lecture des .env - expansion des variables - parsing/validation typée - throw immédiat si la config est invalide Et si vous préférez une approche monadique, la fonction existe aussi en version environmentVariable. Ce n’est pas une révolution, mais une évolution très pratique: moins de bricolage, des erreurs lisibles, et un bootstrap serveur plus fiable. Et comme toutes les fonctions de @duplojs/server-utils, cette méthode est cross-platform: Node, Deno et Bun. Documentation: https://lnkd.in/e8a4C48a En coopération avec Mathieu Campani et DuploJS. Ce post a été corrigé par une IA. #TypeScript #NodeJS #Bun #Deno #API #DX #DeveloperExperience #OpenSource #TypeSafety #RobustCode #Env #Dotenv #DuploJS
-
-
J’ai une nouvelle brique à vous présenter dans l’écosystème DuploJS : @duplojs/server-utils. Après @duplojs/utils et @duplojs/http, cette sortie marque une étape importante. L’idée de @duplojs/server-utils est simple : proposer un panel de fonctionnalités serveur, très utilisées au quotidien, mais avec les standards DuploJS. Concrètement, aujourd’hui vous avez : - Des utilitaires fichiers (lecture, écriture, JSON, dossiers, liens, copy/move/remove, fichiers temporaires…) - Un système de création/exécution de commandes CLI typées - La gestion des variables d’environnement (envs, args process, cwd) Le tout : - cross-platform (Node.js, Deno, Bun) - fortement typé - robuste à l’exécution - avec une DX propre et agréable Cette librairie est construite sur @duplojs/utils. Elle hérite donc de la même philosophie : rendre les comportements prévisibles, explicites, et fiables, sans sacrifier l’ergonomie. Je vous laisse découvrir : - @duplojs/server-utils : https://lnkd.in/g5CKpRTm En coopération avec Mathieu Campani et DuploJS. #TypeScript #NodeJS #Bun #Deno #API #CLI #DX #DeveloperExperience #OpenSource #TypeSafety #RobustCode #Commander #Env #Dotenv #DuploJS
-