/
githubmirror
/
trpc
Обзор
Документация
Войти
/
githubmirror
/
trpc
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
examples/express-server/src/client.ts
74 строки
2 KB
Julius Marminge
refactor: rename and deprecate proxy named stuff (#4932)
20 окт 2023, 21:37
Не верифицирован
20 окт 2023, 21:37
7387cde
Код
Авторство
О чём код?
import { createTRPCClient, httpBatchLink, loggerLink } from '@trpc/client'; import { tap } from '@trpc/server/observable'; import type { AppRouter } from './server'; const sleep = (ms = 100) => new Promise((resolve) => setTimeout(resolve, ms)); async function main() { const url = `http://localhost:2021/trpc`; const trpc = createTRPCClient<AppRouter>({ links: [ () => ({ op, next }) => { console.log('->', op.type, op.path, op.input); return next(op).pipe( tap({ next(result) { console.log('<-', op.type, op.path, op.input, ':', result); }, }), ); }, httpBatchLink({ url }), ], }); await sleep(); // parallel queries await Promise.all([ // trpc.hello.query(), trpc.hello.query('client'), ]); const postCreate = await trpc.post.createPost.mutate({ title: 'hello client', }); console.log('created post', postCreate.title); await sleep(); const postList = await trpc.post.listPosts.query(); console.log('has posts', postList, 'first:', postList[0].title); await sleep(); try { await trpc.admin.secret.query(); } catch (cause) { // will fail } await sleep(); const authedClient = createTRPCClient<AppRouter>({ links: [ loggerLink(), httpBatchLink({ url, headers: () => ({ authorization: 'secret', }), }), ], }); await authedClient.admin.secret.query(); const msgs = await trpc.message.listMessages.query(); console.log('msgs', msgs); console.log('👌 should be a clean exit if everything is working right'); } void main();