Schema Protobuf a tipi TypeScript
Converti uno schema Protobuf in interfacce TypeScript, enum e tipi union.
Schema Protobuf a tipi TypeScript
Incolla uno schema Protobuf e questo strumento genera i tipi TypeScript corrispondenti: un'interfaccia per messaggio, un enum per ogni enum Protobuf, e un tipo union per ogni oneof. Usalo quando un file .proto definisce il formato di trasmissione di un'API e vuoi un client type-safe senza eseguire l'intera catena di strumenti protoc.
Scegli proto2 o proto3 per controllare come vengono letti i campi nudi: proto3 mantiene la presenza implicita, mantenendo i campi scalari e enum sempre presenti mentre i campi messaggio rimangono facoltativi; proto2 invece legge le parole chiave required e optional esplicite su ogni campo. Gli interi a 64 bit si mappano a stringa per impostazione predefinita, poiché i numeri JavaScript perdono precisione oltre 2^53 — disattiva l'opzione per usare number invece. I campi ripetuti diventano array e i campi map<K, V> diventano Record<K, V>. Un oneof può collassare in un tipo union discriminato in modo che solo un membro possa essere impostato alla volta, o appiattirsi in campi facoltativi ordinari. I tipi annidati mantengono il loro nidamento nei nomi generati (Outer_Inner), i nomi dei campi possono rimanere in snake_case o convertirsi a camelCase, i commenti si mantengono come JSDoc, e attivando la generazione di servizi aggiunge un'interfaccia per servizio Protobuf con ogni rpc tipizzato per chiamate unarie o in streaming.
Il convertitore è un parser scritto a mano, non un wrapper intorno a protoc: copre la forma quotidiana di uno schema — messaggi, enum, oneof, map, tipi annidati e servizi — mentre salta opzioni, estensioni e dichiarazioni di campi riservati di cui non ha bisogno per riprodurre un tipo. Un punto e virgola mancante o una parentesi graffa non corrispondente produce un errore chiaro che indica approssimativamente dove è accaduto.
Tutto viene eseguito localmente nel tuo browser; il tuo schema non viene mai caricato, quindi è sicuro incollare definizioni di API proprietarie. Copia il risultato, scaricalo come file .txt, o rimandalo all'input per continuare a perfezionare lo schema.