UNPKG

trpc-sveltekit

Version:

SvelteKit adapter for tRPC.io, working with Node.js, Vercel and Netlify

53 lines (52 loc) 1.93 kB
import type { Handle, RequestEvent } from '@sveltejs/kit'; import type { AnyRouter, ProcedureType, TRPCError, inferRouterContext, inferRouterError } from '@trpc/server'; import { type ResponseMeta } from '@trpc/server/http'; import type { TRPCResponse } from '@trpc/server/rpc'; import type { ValidRoute } from './ValidRoute'; /** * Create a SvelteKit handle function for tRPC requests. * * If you want to use it in conjunction with other SvelteKit handles, * consider [the sequence helper function](https://kit.svelte.dev/docs/modules#sveltejs-kit-hooks). * @see https://kit.svelte.dev/docs/hooks */ export declare function createTRPCHandle<Router extends AnyRouter, URL extends string>({ router, url, createContext, responseMeta, onError }: { /** * The tRPC router to use. * @see https://trpc.io/docs/router */ router: Router; /** * The tRPC api endpoint URL. * @default '/trpc' */ url?: ValidRoute<URL>; /** * A function that returns the tRPC context. * @see https://trpc.io/docs/context */ createContext?: (event: RequestEvent) => inferRouterContext<Router> | Promise<inferRouterContext<Router>>; /** * A function that returns the response meta. * @see https://trpc.io/docs/caching#using-responsemeta-to-cache-responses */ responseMeta?: (opts: { data: TRPCResponse<unknown, inferRouterError<Router>>[]; ctx?: inferRouterContext<Router>; paths?: string[]; type: ProcedureType; errors: TRPCError[]; }) => ResponseMeta; /** * A function that is called when an error occurs. * @see https://trpc.io/docs/error-handling#handling-errors */ onError?: (opts: { ctx?: inferRouterContext<Router>; error: TRPCError; path: string; input: unknown; req: RequestInit; type: ProcedureType | 'unknown'; }) => void; }): Handle;