Esquema Protobuf a tipos TypeScript
Convierte un esquema Protobuf en interfaces TypeScript, enums y tipos union.
Esquema Protobuf a tipos TypeScript
Pega un esquema Protobuf y esta herramienta genera los tipos TypeScript correspondientes: una interfaz por mensaje, un enum por cada enum de Protobuf, y un tipo union por cada oneof. Úsala cuando un archivo .proto define el formato de una API y quieres un cliente type-safe sin ejecutar la cadena completa de protoc.
Elige proto2 o proto3 para controlar cómo se leen los campos básicos: proto3 mantiene presencia implícita, manteniendo campos escalares y enum siempre presentes mientras que los campos de mensaje siguen siendo opcionales; proto2 en cambio lee las palabras clave required u optional explícitamente en cada campo. Los enteros de 64 bits se mapean a string por defecto, ya que los números de JavaScript pierden precisión por encima de 2^53 — desactiva la opción para usar number en su lugar. Los campos repetidos se convierten en arrays y los campos map<K, V> en Record<K, V>. Un oneof puede colapsar en un tipo union discriminado para que solo un miembro esté presente a la vez, o aplanarse en campos opcionales ordinarios. Los tipos anidados mantienen su anidación en los nombres generados (Outer_Inner), los nombres de campos pueden permanecer en snake_case o convertirse a camelCase, los comentarios se mantienen como JSDoc, y activar la generación de servicios añade una interfaz por servicio Protobuf con cada rpc tipificado para llamadas unarias o en streaming.
El convertidor es un analizador escrito a mano, no un contenedor alrededor de protoc: cubre la forma cotidiana de un esquema — mensajes, enums, oneofs, maps, tipos anidados y servicios — mientras salta opciones, extensiones y declaraciones de campos reservados que no necesita reproducir un tipo. Un punto y coma faltante o una llave sin emparejar produce un error claro indicando aproximadamente dónde ocurrió.
Todo se ejecuta localmente en tu navegador; tu esquema nunca se sube, así que es seguro pegar definiciones de API propietarias. Copia el resultado, descárgalo como archivo .txt, o envíalo de vuelta a la entrada para seguir refinando el esquema.