Схема Protobuf у типи TypeScript
Перетворіть схему Protobuf у відповідні інтерфейси TypeScript, перерахування та об'єднання.
Схема Protobuf у типи TypeScript
Вставте схему Protobuf, і цей інструмент створить відповідні типи TypeScript: один інтерфейс для кожного повідомлення, одне перерахування для кожного перерахування Protobuf та тип об'єднання для кожного oneof. Використовуйте його, коли файл .proto визначає формат передачі даних API, і вам потрібен безпечний щодо типів клієнт без повного набору інструментів protoc.
Виберіть proto2 або proto3 для управління способом читання голих полів: неявна присутність proto3 зберігає скалярні та перелічувальні поля завжди присутніми, тоді як поля типу повідомлення залишаються необов'язковими; proto2 замість цього читає явне ключове слово required або optional для кожного поля. 64-бітні цілі числа за замовчуванням відображаються на рядок, оскільки числа JavaScript втрачають точність вище 2^53 — вимкніть опцію для числа замість цього. Повторювані поля стають масивами, а поля map<K, V> стають Record<K, V>. Oneof або згортається у дискримінований тип об'єднання, щоб одночасно можна було встановити лише один член, або спрощується на звичайні необов'язкові поля. Вкладені типи зберігають своє вкладення у створених іменах (Outer_Inner), імена полів можуть залишатися в snake_case або перетворюватися на camelCase, коментарі передаються як JSDoc, а включення генерації сервісу додає один інтерфейс для кожного сервісу Protobuf з кожним методом rpc типізованим для унарних або потокових викликів.
Конвертер — це написаний вручну парсер, а не обгортка навколо protoc: він охоплює звичайну форму схеми — повідомлення, перерахування, oneofs, карти, вкладені типи та сервіси — пропускаючи опції, розширення та зарезервовані оператори полів, які йому не потрібні для відтворення типу. Відсутня точка з комою або невідповідна дужка дає чіткої помилки з вказівкою приблизно того, де це сталося.
Усе виконується локально у вашому браузері; ваша схема ніколи не завантажується, тому безпечно вставляти визначення внутрішніх API. Скопіюйте результат, завантажте його як файл .txt або відправте назад у вхідні дані, щоб продовжити уточнення схеми.