rembrembdocs

localLink is a terminating link that allows you to make tRPC procedure calls directly in your application without going through HTTP.

info

We have prefixed this as unstable_ as it's a new API, but you're safe to use it! Read more.

Usage

tsx

import { createTRPCClient, unstable_localLink } from '@trpc/client';

import type { AppRouter } from './server';

import { 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);`

  `},`

`}),`

],

});

Features

Options

The localLink accepts the following options:

ts

type LocalLinkOptions<TRouter extends AnyRouter> = {

router: TRouter;

createContext: () => Promise<inferRouterContext<TRouter>>;

onError?: (opts: ErrorHandlerOptions<inferRouterContext<TRouter>>) => void;

} & TransformerOptions<inferClientTypes<TRouter>>;

router

The tRPC router instance to use for procedure calls.

createContext

A function that creates the context for each procedure call. This is called for each request and should return a promise that resolves to the context object.

onError

An optional error handler that is called when an error occurs during a procedure call. It receives the error, operation type, path, input, and context.

transformer

Optional input/output transformers for serialization/deserialization of data.

Notes