メインコンテンツへスキップ
バージョン: 11.x

ローカルリンク

非公式ベータ版翻訳

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

localLinkターミネートリンクで、HTTP経由せずにアプリケーション内で直接tRPCプロシージャコールを実行できます。

情報

新規APIのためunstable_プレフィックスを付けていますが、安全に利用できます!詳細はこちら

使用方法

tsx
import { createTRPCClient, unstable_localLink } from '@trpc/client';
import type { AppRouter } from '../server';
const client = createTRPCClient<AppRouter>({
links: [
unstable_localLink({
router: appRouter,
createContext: async () => {
// Create your context here
return {};
},
onError: (opts) => {
// Log errors here, similarly to how you would in an API route
console.error('Error:', opts.error);
},
}),
],
});
tsx
import { createTRPCClient, unstable_localLink } from '@trpc/client';
import type { AppRouter } from '../server';
const client = createTRPCClient<AppRouter>({
links: [
unstable_localLink({
router: appRouter,
createContext: async () => {
// Create your context here
return {};
},
onError: (opts) => {
// Log errors here, similarly to how you would in an API route
console.error('Error:', opts.error);
},
}),
],
});

特徴

  • HTTPオーバーヘッドなしの直接プロシージャコール

  • クエリ、ミューテーション、サブスクリプションの完全サポート

  • 自動エラーハンドリングとデータ変換

  • アボートシグナル対応

  • タイプセーフなコンテキスト生成

オプション

localLinkは以下のオプションを受け付けます:

ts
type LocalLinkOptions<TRouter extends AnyRouter> = {
router: TRouter;
createContext: () => Promise<inferRouterContext<TRouter>>;
onError?: (opts: ErrorHandlerOptions<inferRouterContext<TRouter>>) => void;
} & TransformerOptions<inferClientTypes<TRouter>>;
ts
type LocalLinkOptions<TRouter extends AnyRouter> = {
router: TRouter;
createContext: () => Promise<inferRouterContext<TRouter>>;
onError?: (opts: ErrorHandlerOptions<inferRouterContext<TRouter>>) => void;
} & TransformerOptions<inferClientTypes<TRouter>>;

router

プロシージャコールに使用するtRPCルーターインスタンス。

createContext

各プロシージャコール用のコンテキストを生成する関数。リクエストごとに呼び出され、コンテキストオブジェクトに解決されるPromiseを返す必要があります。

onError

プロシージャコール中にエラーが発生した際に呼ばれるオプションのエラーハンドラ。エラー、操作タイプ、パス、入力、コンテキストを受け取ります。

transformer

データのシリアライゼーション/デシリアライゼーション用のオプション入出力トランスフォーマー。

注意事項

  • HTTP経由せず直接プロシージャコールが必要なシナリオでの使用を推奨

  • ほとんどのクライアントサイドアプリケーションではhttpLinkなどのHTTPベースリンクを使用すべき

  • クエリ、ミューテーション、サブスクリプションを含む全tRPC機能をサポート

  • エラーハンドリングとデータ変換はHTTPベースリンクと同様に自動処理