로컬 링크
localLink는 HTTP를 거치지 않고 애플리케이션에서 tRPC 프로시저를 직접 호출할 수 있도록 하는 종단 링크입니다.
정보
새로운 API이므로 unstable_ 접두사가 붙어 있지만, 안심하고 사용하셔도 됩니다! 자세히 보기.
사용법
tsximport {createTRPCClient ,unstable_localLink } from '@trpc/client';import type {AppRouter } from './server';import {appRouter } from './server';constclient =createTRPCClient <AppRouter >({links : [unstable_localLink ({router :appRouter ,createContext : async () => {// Create your context herereturn {};},onError : (opts ) => {// Log errors here, similarly to how you would in an API routeconsole .error ('Error:',opts .error );},}),],});
tsximport {createTRPCClient ,unstable_localLink } from '@trpc/client';import type {AppRouter } from './server';import {appRouter } from './server';constclient =createTRPCClient <AppRouter >({links : [unstable_localLink ({router :appRouter ,createContext : async () => {// Create your context herereturn {};},onError : (opts ) => {// Log errors here, similarly to how you would in an API routeconsole .error ('Error:',opts .error );},}),],});
기능
- HTTP 오버헤드 없이 프로시저 직접 호출
- 쿼리, 뮤테이션, 구독에 대한 완전한 지원
- 오류 처리 및 변환 자동화
- 중단 신호(abort signal) 지원
- 타입 안전한 컨텍스트 생성
옵션
localLink는 다음 옵션을 받습니다:
tstypeLocalLinkOptions <TRouter extendsAnyRouter > = {router :TRouter ;createContext : () =>Promise <inferRouterContext <TRouter >>;onError ?: (opts :ErrorHandlerOptions <inferRouterContext <TRouter >>) => void;} &TransformerOptions <inferClientTypes <TRouter >>;
tstypeLocalLinkOptions <TRouter extendsAnyRouter > = {router :TRouter ;createContext : () =>Promise <inferRouterContext <TRouter >>;onError ?: (opts :ErrorHandlerOptions <inferRouterContext <TRouter >>) => void;} &TransformerOptions <inferClientTypes <TRouter >>;
라우터
프로시저 호출에 사용할 tRPC 라우터 인스턴스입니다.
createContext
각 프로시저 호출에 대한 컨텍스트를 생성하는 함수입니다. 이 함수는 각 요청마다 호출되며 컨텍스트 객체를 반환하는 프로미스를 반환해야 합니다.
onError
프로시저 호출 중 오류가 발생하면 호출되는 선택적 오류 핸들러입니다. 오류, 작업 유형, 경로, 입력, 컨텍스트를 인자로 받습니다.
트랜스포머
데이터 직렬화/역직렬화를 위한 선택적 입력/출력 트랜스포머입니다.
참고
- HTTP 없이 프로시저를 직접 호출해야 하는 시나리오에서 이 링크를 사용하는 것이 권장됩니다
- 대부분의 클라이언트 측 애플리케이션에서는
httpLink또는 다른 HTTP 기반 링크를 사용하는 것이 좋습니다 - 이 링크는 쿼리, 뮤테이션, 구독을 포함한 모든 tRPC 기능을 지원합니다
- 오류 처리 및 변환은 HTTP 기반 링크와 마찬가지로 자동으로 처리됩니다