Esquema Protobuf para tipos TypeScript
Transforme um esquema Protobuf em interfaces, enumerações e tipos união TypeScript correspondentes.
Esquema Protobuf para tipos TypeScript
Cole um esquema Protobuf e esta ferramenta gera os tipos TypeScript correspondentes: uma interface por mensagem, uma enumeração por enumeração Protobuf e um tipo união para cada oneof. Use quando um ficheiro .proto define o formato de transmissão de uma API e pretende um cliente type-safe sem executar a cadeia de ferramentas completa do protoc.
Escolha proto2 ou proto3 para controlar como os campos são lidos: proto3 com presença implícita mantém os campos escalares singulares e de enumeração sempre presentes, enquanto os campos de tipos de mensagem permanecem opcionais; proto2 lê a palavra-chave required ou optional explícita em cada campo. Inteiros de 64 bits mapeiam para string por padrão, pois números JavaScript perdem precisão acima de 2^53 — desative a opção para usar number em seu lugar. Os campos repetidos tornam-se arrays e os campos map<K, V> tornam-se Record<K, V>. Um oneof ou se transforma num tipo união discriminado, de forma que apenas um membro pode estar definido de cada vez, ou se achata em campos opcionais ordinários. Os tipos aninhados mantêm o seu aninhamento nos nomes gerados (Outer_Inner), os nomes de campos podem permanecer snake_case ou converter para camelCase, os comentários são transportados como JSDoc e ativar a geração de serviço adiciona uma interface por serviço Protobuf com cada rpc digitado para chamadas uniárias ou de streaming.
O conversor é um analisador escrito à mão, não um invólucro em torno do protoc: cobre a forma quotidiana de um esquema — mensagens, enumerações, oneofs, maps, tipos aninhados e serviços — enquanto ignora opções, extensões e instruções de campos reservados que não precisa reproduzir um tipo. Um ponto e vírgula em falta ou uma chaveta sem correspondência produz um erro claro indicando aproximadamente onde ocorreu.
Tudo é executado localmente no seu navegador; o seu esquema nunca é enviado, portanto é seguro colar definições de API proprietárias. Copie o resultado, descarregue como ficheiro .txt ou envie-o de volta para a entrada para continuar a refinar o esquema.