Перейти к содержимому
Загрузка статьи…

Трек · Фронт · На графе модуля

Свой tRPC: клиент и сервер

Делают
Денис (фронт)
Менторы
Ярослав

Связи

Задачи

Задач пока нет: их привязывают на груминге полем «Трек» на доске

План модуля №3 — реализовать собственные клиент и сервер tRPC, затем заменить ими официальные библиотеки приложения из модуля №2. Это необходимое приложению подмножество tRPC, без полного клона всех возможностей библиотеки.

Клиент ​

Типизированные вызовы процедур с выводом входов и результатов; HTTP query/mutation, батчинг, заголовки и разбор ошибок. Сохранить используемый приложением HTTP RPC и типизированный API, включая передачу X-CSRF и обработку ошибок сессии и полей.

Сервер ​

Роутер и процедуры, контекст и middleware авторизации, разбор входа, типы входов/ответов, ошибки и HTTP-адаптер для Hono/Bun. Это серверная часть tRPC в BFF; клиент к Go от Orval остаётся отдельным слоем. Схемы собственного Zod подключаются через Standard Schema; сервер сохраняет этот интерфейс и вывод типов процедур.

Интеграция ​

Заменить официальные @trpc/client и @trpc/server собственными реализациями, сохранив используемые процедуры, bootstrap, CSRF, сессии и пользовательское поведение. Совместимость контракта означает сохранение используемого HTTP RPC и типизированного API.

Точное публичное API и размещение пакетов требуют отдельного дизайна перед реализацией. Собственные командные библиотеки размещаются в монорепе frontend-packages; имена и версии будущих пакетов здесь не задаются.