Ssylka

Типизированный Telegram Bot API клиент для TypeScript

Для упрощения разработки Telegram ботов на TypeScript был создан клиент, полностью типизированный и охватывающий все методы API. Использование нативного fetch для HTTP запросов генерировало много рутинного кода, требовало постоянного обращения к документации и выбора нужных JSON, что подтолкнуло к созданию библиотеки.
Типизированный Telegram Bot API клиент для TypeScript
Изображение носит иллюстративный характер

Основой стал парсер HTML-документации Telegram API, генерирующий TypeScript типы и интерфейсы. Несмотря на попытки других проектов парсить HTML страницу и создавать OpenAPI артефакт, эти сгенерированные спецификации оказались не очень удобными и корректными. Было решено написать свой парсер HTML страницы и кодогенератор, для того, чтобы сразу сгенерировать TypeScript типы и интерфейсы. Парсер объединяет типы и методы в единую сущность, учитывая минимальные различия между ними.

Библиотека использует сгенерированные типы для обеспечения типизированного API клиента, с функциями, принимающими название и тело метода, автоматически типизируя входные данные. Клиент отправляет HTTP запросы, используя multipart/form-data, и преобразует ответы в соответствующие TypeScript типы, созданные кодогенератором.

Опубликованная в NPM библиотека включает в себя контракты Telegram Bot Api (методы, входные данные, типы результатов) и выходные типы. Это позволяет разработчикам использовать все преимущества TypeScript, такие как автодополнение и проверка типов, при работе с Telegram Bot API.


Новое на сайте

18246Мог ли древний яд стать решающим фактором в эволюции человека? 18245Тайна колодца Мурсы: раны и днк раскрыли судьбу павших солдат 18244Битва за миллиардный сэндвич без корочки 18243Почему ваши расширения для VS Code могут оказаться шпионским по? 18242Как подать заявку FAFSA на 2026-27 учебный год и получить финансовую помощь? 18241Мог ли взлом F5 раскрыть уязвимости нулевого дня в продукте BIG-IP? 18240CVS завершает поглощение активов обанкротившейся сети Rite Aid 18239Nvidia, BlackRock и Microsoft покупают основу для глобального ИИ за $40 миллиардов 18238Действительно ли только род Homo создавал орудия труда? 18236Процент с прибыли: как инвесторы создали новый источник финансирования для... 18235Почему синхронизируемые ключи доступа открывают двери для кибератак на предприятия? 18234Какова реальная цена суперсилы гриба из Super Mario? 18233Как люксовые бренды контролировали цены и почему за это поплатились? 18232Как диетическая кола растворила массу, вызванную лекарством для похудения