@trpc/next
Version:
50 lines • 2.97 kB
TypeScript
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