/
githubmirror
/
trpc
Обзор
Документация
Войти
/
githubmirror
/
trpc
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
examples/fastify-server/src/client/index.ts
69 строк
2 KB
hmatthieu
chore(client): refactor & undeprecate `wsLink` (#6223)
18 фев 2025, 12:37
Не верифицирован
18 фев 2025, 12:37
df4d4ed
Код
Авторство
О чём код?
import { createTRPCClient, createWSClient, httpBatchLink, splitLink, wsLink, } from '@trpc/client'; import superjson from 'superjson'; import { serverConfig } from '../config'; import type { AppRouter } from '../server/router'; import './polyfill'; async function start() { const { port, prefix } = serverConfig; const urlEnd = `localhost:${port}${prefix}`; const wsClient = createWSClient({ url: `ws://${urlEnd}` }); const trpc = createTRPCClient<AppRouter>({ links: [ splitLink({ condition(op) { return op.type === 'subscription'; }, true: wsLink({ client: wsClient, transformer: superjson }), false: httpBatchLink({ url: `http://${urlEnd}`, transformer: superjson, }), }), ], }); const version = await trpc.api.version.query(); console.log('>>> anon:version:', version); const hello = await trpc.api.hello.query(); console.log('>>> anon:hello:', hello); const postList = await trpc.posts.list.query(); console.log('>>> anon:posts:list:', postList); await trpc.posts.reset.mutate(); let randomNumberCount = 0; await new Promise<void>((resolve) => { const sub = trpc.sub.randomNumber.subscribe(undefined, { onData(data) { console.log('>>> anon:sub:randomNumber:received:', data); randomNumberCount++; if (randomNumberCount > 3) { sub.unsubscribe(); resolve(); } }, onError(error) { console.error('>>> anon:sub:randomNumber:error:', error); }, onComplete() { console.log('>>> anon:sub:randomNumber:', 'unsub() called'); }, }); }); // we're done - make sure app closes with a clean exit await wsClient.close(); } void start();