Schemat Protobuf na typy TypeScript
Konwertuj schemat Protobuf na odpowiadające interfejsy TypeScript, wyliczenia i typy unii.
Schemat Protobuf na typy TypeScript
Wklej schemat Protobuf a to narzędzie wygeneruje odpowiadające mu typy TypeScript: jeden interfejs na wiadomość, jedno wyliczenie na wyliczenie Protobuf i typ unii dla każdego oneof. Użyj go, gdy plik .proto definiuje format telegramu API i chcesz bezpiecznego pod względem typów klienta bez uruchamiania całego łańcucha narzędzi protoc.
Wybierz proto2 lub proto3, aby kontrolować sposób czytania golych pól: proto3 niejawna obecność utrzymuje pola skalarne i wyliczeniowe zawsze obecne, podczas gdy pola typizowane wiadomościami pozostają opcjonalne; proto2 zamiast tego czyta jawne słowa kluczowe required i optional na każdym polu. 64-bitowe liczby całkowite są mapowane na tekst domyślnie, ponieważ liczby JavaScript tracą precyzję powyżej 2^53 — wyłącz opcję dla number zamiast tego. Pola powtarzające się stają się tablicami, a pola map<K, V> stają się Record<K, V>. Oneof albo pada do zdyskryminowanego typu unii, aby tylko jeden członek mógł być ustawiony naraz, lub rozpada się na zwykłe pola opcjonalne. Typy zagnieżdżone zachowują swoje zagnieżdżenie w generowanych nazwach (Outer_Inner), nazwy pól mogą pozostać w snake_case lub być konwertowane na camelCase, komentarze przenoszą się jako JSDoc, a włączenie generowania usług dodaje jeden interfejs na usługę Protobuf z każdym rpc wpisanym dla połączeń jednokierunkowych lub strumieniowych.
Konwerter jest ręcznie napisanym analizatorem, a nie wrapperem wokół protoc: obejmuje codzienne formy schematu — wiadomości, wyliczenia, oneofs, mapy, typy zagnieżdżone i usługi — podczas gdy pomija opcje, rozszerzenia i zarezerwowane instrukcje pól, które nie musi reprodukować typ. Brakujący średnik lub niedopasowany nawias wytwarza jasny błąd nazwę mniej więcej gdzie to się stało.
Wszystko działa lokalnie w twojej przeglądarce; twój schemat nigdy nie jest przesyłany, więc jest bezpiecznie wklejać własnościowe definicje API. Skopiuj wynik, pobierz go jako plik .txt lub wyślij go z powrotem do wejścia, aby kontynuować udoskonalanie schematu.