trpc-sveltekit
Version:
SvelteKit adapter for tRPC.io, working with Node.js, Vercel and Netlify
53 lines (52 loc) • 1.93 kB
TypeScript
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;