UNPKG

@trpc/next

Version:

The tRPC Next.js library

55 lines 2.6 kB
import type { CreateTRPCClientOptions, Resolver, TRPCClient } from '@trpc/client'; import { TRPCUntypedClient } from '@trpc/client'; import type { inferProcedureOutput } from '@trpc/server'; import type { AnyClientTypes, AnyProcedure, AnyQueryProcedure, AnyRootTypes, AnyRouter, inferProcedureInput, inferTransformedProcedureOutput, ProtectedIntersection, RouterRecord } from '@trpc/server/unstable-core-do-not-import'; /** * @internal */ export type UseProcedureRecord<TRoot extends AnyRootTypes, TRecord extends RouterRecord> = { [TKey in keyof TRecord]: TRecord[TKey] extends infer $Value ? $Value extends AnyQueryProcedure ? Resolver<{ input: inferProcedureInput<$Value>; output: inferTransformedProcedureOutput<TRoot, $Value>; errorShape: TRoot['errorShape']; transformer: TRoot['transformer']; }> : $Value extends RouterRecord ? UseProcedureRecord<TRoot, $Value> : never : never; }; export declare function createUseProxy<TRouter extends AnyRouter>(client: TRPCUntypedClient<TRouter> | TRPCClient<TRouter>): UseProcedureRecord<TRouter["_def"]["_config"]["$types"], TRouter["_def"]["record"]>; type NextAppRouterUse<TRouter extends AnyRouter> = { <TData extends Promise<unknown>[]>(cb: (t: UseProcedureRecord<TRouter['_def']['_config']['$types'], TRouter['_def']['record']>) => [...TData]): { [TKey in keyof TData]: Awaited<TData[TKey]>; }; <TData extends Promise<unknown>>(cb: (t: UseProcedureRecord<TRouter['_def']['_config']['$types'], TRouter['_def']['record']>) => TData): Awaited<TData>; }; type CreateTRPCNextAppRouterBase<TRouter extends AnyRouter> = { use: NextAppRouterUse<TRouter>; }; export type CreateTRPCNextAppRouter<TRouter extends AnyRouter> = ProtectedIntersection<CreateTRPCNextAppRouterBase<TRouter>, UseProcedureRecord<TRouter['_def']['_config']['$types'], TRouter['_def']['record']>>; /** * @internal */ export interface CreateTRPCNextAppRouterOptions<TRouter extends AnyRouter> { config: () => CreateTRPCClientOptions<TRouter>; } /** * @internal */ export declare function generateCacheTag(procedurePath: string, input: any): string; export declare function isFormData(value: unknown): value is FormData; /** * @internal */ export interface ActionHandlerDef { input?: any; output?: any; errorShape: any; } /** * @internal */ export type inferActionDef<TRoot extends AnyClientTypes, TProc extends AnyProcedure> = { input: inferProcedureInput<TProc>; output: inferProcedureOutput<TProc>; errorShape: TRoot['errorShape']; }; export {}; //# sourceMappingURL=shared.d.ts.map