UNPKG

@trpc/next

Version:

The tRPC Next.js library

83 lines • 4.29 kB
import { a as ActionHandlerDef, o as CreateTRPCNextAppRouterOptions, t as TRPCActionHandler } from "../server-DftaCdE6.mjs"; import { TransformerOptions } from "@trpc/client/unstable-internals"; import { AnyRouter, InferrableClientTypes, MaybePromise, Simplify, TypeError, inferClientTypes } from "@trpc/server/unstable-core-do-not-import"; import { CreateTRPCClientOptions, TRPCClient, TRPCClientError, TRPCLink, TRPCProcedureOptions } from "@trpc/client"; //#region src/app-dir/create-action-hook.d.ts type MutationArgs<TDef extends ActionHandlerDef> = TDef['input'] extends void ? [input?: undefined | void, opts?: TRPCProcedureOptions] : [input: FormData | TDef['input'], opts?: TRPCProcedureOptions]; type ActionError<TDef extends ActionHandlerDef> = TRPCClientError<{ errorShape: TDef['errorShape']; transformer: boolean; }>; interface UseTRPCActionBaseResult<TDef extends ActionHandlerDef> { /** * Calls the action. It never throws: `onError` gets the error while the * component is mounted, and `error` is set if no newer call has started. */ mutate: (...args: MutationArgs<TDef>) => void; /** * Like `mutate`, but returns a promise. It rejects on error, unless a * newer call has started or the component has unmounted. */ mutateAsync: (...args: MutationArgs<TDef>) => Promise<TDef['output']>; } interface UseTRPCActionSuccessResult<TDef extends ActionHandlerDef> extends UseTRPCActionBaseResult<TDef> { data: TDef['output']; error?: never; status: 'success'; } interface UseTRPCActionErrorResult<TDef extends ActionHandlerDef> extends UseTRPCActionBaseResult<TDef> { data?: never; error: ActionError<TDef>; status: 'error'; } interface UseTRPCActionIdleResult<TDef extends ActionHandlerDef> extends UseTRPCActionBaseResult<TDef> { data?: never; error?: never; status: 'idle'; } interface UseTRPCActionLoadingResult<TDef extends ActionHandlerDef> extends UseTRPCActionBaseResult<TDef> { data?: never; error?: never; status: 'loading'; } /** * The result of a hook from {@link experimental_createActionHook}. Check * `status` to narrow it. * * @see https://trpc.io/docs/client/nextjs/app-router-setup */ type UseTRPCActionResult<TDef extends ActionHandlerDef> = UseTRPCActionErrorResult<TDef> | UseTRPCActionIdleResult<TDef> | UseTRPCActionLoadingResult<TDef> | UseTRPCActionSuccessResult<TDef>; /** * A terminating link that calls a server action. * * @see https://trpc.io/docs/client/nextjs/app-router-setup * @see https://trpc.io/docs/client/nextjs/server-actions */ export declare function experimental_serverActionLink<TInferrable extends InferrableClientTypes>(...args: InferrableClientTypes extends TInferrable ? [TypeError<'Generic parameter missing in `experimental_createActionHook<HERE>()` or experimental_serverActionLink<HERE>()'>] : inferClientTypes<TInferrable>['transformer'] extends true ? [opts: TransformerOptions<{ transformer: true; }>] : [opts?: TransformerOptions<{ transformer: false; }>]): TRPCLink<TInferrable>; interface UseTRPCActionOptions<TDef extends ActionHandlerDef> { onSuccess?: (result: TDef['output']) => MaybePromise<void> | void; onError?: (result: ActionError<TDef>) => MaybePromise<void>; } /** * Creates a React hook that calls a server action made with * `experimental_createServerActionHandler`. * * @see https://trpc.io/docs/client/nextjs/app-router-setup * @see https://trpc.io/docs/client/nextjs/server-actions */ export declare function experimental_createActionHook<TInferrable extends InferrableClientTypes>(opts: InferrableClientTypes extends TInferrable ? TypeError<'Generic parameter missing in `experimental_createActionHook<HERE>()`'> : CreateTRPCClientOptions<TInferrable>): <TDef extends ActionHandlerDef>(handler: TRPCActionHandler<TDef>, useActionOpts?: UseTRPCActionOptions<Simplify<TDef>>) => UseTRPCActionResult<TDef>; //#endregion //#region src/app-dir/client.d.ts /** * Creates a tRPC client for App Router client components. * * @see https://trpc.io/docs/client/nextjs/app-router-setup */ export declare function experimental_createTRPCNextAppDirClient<TRouter extends AnyRouter>(opts: CreateTRPCNextAppRouterOptions<TRouter>): TRPCClient<TRouter>; //#endregion export type { UseTRPCActionResult }; //# sourceMappingURL=client.d.mts.map