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