Релиз tRPC v10
После нескольких релиз-кандидатов появилась стабильная мажорная версия tRPC v10.
Основные изменения:
- Улучшенная поддержка TypeScript. Упрощен вывод типов, больше поддержки для IDE. Улучшена производительность для TypeScript.
- Изменена конструкция создания роутера и вызова процедур.
- Мидлвары стали переиспользуемыми.
- Функции процедуры стали переиспользуемыми, и их можно выстраивать в цепочку. Можно сделать публичные и приватные процедуры, добавив мидлвар проверки авторизации.
- Гибкая обработка ошибок: перед отправкой ошибки клиенту есть возможность ее видоизменить.
Если в проекте уже используется tRPC v9, то можно обновиться на v10 поэтапно. После обновления tRPC для роутеров нужно добавить метод interop() и серверный код продолжит работать как раньше.
Пример переиспользуемых процедур:
export const protectedProcedure = t.procedure.use(isAuthed);
export const appRouter = router({
createPost: protectedProcedure.mutation(({ctx}) => {
const session = ctx.session;
// [...]
}),
});
https://trpc.io/blog/announcing-trpc-10