Structuration de contrats typés dans The Object
Situation et action menée
Dans le projet The Object, j’ai utilisé TypeScript pour structurer une partie essentielle du fonctionnement du framework : la représentation des objets, de leurs champs, de leurs relations et des éléments techniques à générer. Le projet repose sur l’idée qu’un schéma source doit pouvoir servir de base à la génération d’entités TypeORM, de structures de base de données et d’endpoints CRUD.
Dans ce contexte, TypeScript m’a permis de formaliser plus clairement les données manipulées par l’algorithme de génération. J’ai travaillé sur la définition de types et de structures permettant de représenter les propriétés d’un objet, les contraintes associées, les relations possibles et les informations nécessaires à la génération. L’objectif était d’éviter que ces informations restent implicites ou dispersées dans le code.
Ce travail m’a aussi amené à mieux distinguer les données décrites dans le schéma source, les modèles internes utilisés par le programme et les artefacts générés. TypeScript m’a donc servi à clarifier les contrats entre les différentes étapes du traitement : lecture du schéma, analyse, transformation, puis génération du code.
Résultat obtenu
L’utilisation de TypeScript a permis de rendre le fonctionnement de The Object plus lisible et plus fiable. Les structures manipulées par le générateur sont devenues plus explicites, ce qui facilite la compréhension du code et réduit le risque d’incohérence entre le schéma source et les éléments générés.
Le projet gagne aussi en maintenabilité, car les erreurs liées à une propriété manquante, à un mauvais format ou à une mauvaise interprétation du modèle peuvent être repérées plus tôt. Cela facilite les évolutions futures du framework, notamment l’extension vers la génération de composants React ou l’intégration dans Next.js.
Ma valeur ajoutée
Ma valeur ajoutée a été de ne pas utiliser TypeScript uniquement comme un outil de confort, mais comme un véritable support de conception. J’ai transformé des décisions qui auraient pu rester implicites en structures typées et documentées par le code.
Cette démarche m’a permis de mieux maîtriser la complexité du projet, de rendre l’algorithme de génération plus compréhensible et de poser une base plus solide pour les futures évolutions. Elle montre ma capacité à utiliser TypeScript dans une logique d’ingénierie logicielle : clarifier les contrats, sécuriser les transformations et rendre un système plus maintenable.
