UNPKG

@trpc/next

Version:

The tRPC Next.js library

50 lines 2.97 kB
import type { CreateTRPCClientOptions, TRPCLink, TRPCProcedureOptions } from '@trpc/client'; import { TRPCClientError } from '@trpc/client'; import type { TransformerOptions } from '@trpc/client/unstable-internals'; import type { inferClientTypes, InferrableClientTypes, MaybePromise, Simplify, TypeError } from '@trpc/server/unstable-core-do-not-import'; import type { TRPCActionHandler } from './server'; import type { ActionHandlerDef } from './shared'; type MutationArgs<TDef extends ActionHandlerDef> = TDef['input'] extends void ? [input?: undefined | void, opts?: TRPCProcedureOptions] : [input: FormData | TDef['input'], opts?: TRPCProcedureOptions]; interface UseTRPCActionBaseResult<TDef extends ActionHandlerDef> { mutate: (...args: MutationArgs<TDef>) => void; 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: TRPCClientError<TDef['errorShape']>; 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'; } export type UseTRPCActionResult<TDef extends ActionHandlerDef> = UseTRPCActionErrorResult<TDef> | UseTRPCActionIdleResult<TDef> | UseTRPCActionLoadingResult<TDef> | UseTRPCActionSuccessResult<TDef>; 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: TRPCClientError<TDef['errorShape']>) => MaybePromise<void>; } 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>; export {}; //# sourceMappingURL=create-action-hook.d.ts.map