Schéma Protobuf en types TypeScript
Convertit un schéma Protobuf en interfaces TypeScript, enums et types union.
Schéma Protobuf en types TypeScript
Colle un schéma Protobuf et cet outil génère les types TypeScript correspondants : une interface par message, un enum par enum Protobuf, et un type union pour chaque oneof. Utilise-le quand un fichier .proto définit le format de fil d'une API et que tu veux un client type-safe sans exécuter la chaîne d'outils protoc complète.
Choisir proto2 ou proto3 pour contrôler la lecture des champs nus : proto3 maintient la présence implicite, gardant les champs scalaires et enum toujours présents tandis que les champs message restent optionnels ; proto2 lit plutôt les mots-clés required et optional explicites sur chaque champ. Les entiers 64 bits s'associent à une chaîne par défaut, car les nombres JavaScript perdent de la précision au-delà de 2^53 — désactive l'option pour utiliser number à la place. Les champs répétés deviennent des tableaux et les champs map<K, V> deviennent Record<K, V>. Un oneof s'effondre soit en un type union discriminé pour qu'un seul membre puisse être défini à la fois, soit s'aplatit en champs optionnels ordinaires. Les types imbriqués conservent leur imbrication dans les noms générés (Outer_Inner), les noms de champs peuvent rester en snake_case ou se convertir en camelCase, les commentaires se transmettent comme JSDoc, et l'activation de la génération de service ajoute une interface par service Protobuf avec chaque rpc typé pour les appels unaires ou en continu.
Le convertisseur est un analyseur écrit à la main, pas un wrapper autour de protoc : il couvre la forme quotidienne d'un schéma — messages, enums, oneofs, maps, types imbriqués et services — tout en omettant les options, extensions et déclarations de champs réservés dont il n'a pas besoin pour reproduire un type. Un point-virgule manquant ou une accolade non appariée produit une erreur claire indiquant à peu près où c'est arrivé.
Tout fonctionne localement dans ton navigateur ; ton schéma n'est jamais téléchargé, c'est donc sûr de coller des définitions d'API propriétaires. Copie le résultat, télécharge-le en tant que fichier .txt, ou renvoie-le à l'entrée pour affiner le schéma.