diff --git a/src/runtime/client.ts b/src/runtime/client.ts index bc17bbf..42845d7 100644 --- a/src/runtime/client.ts +++ b/src/runtime/client.ts @@ -1,24 +1,12 @@ -import type { CreateTRPCClientOptions, TRPCClientErrorLike, inferRouterProxyClient } from '@trpc/client' +import type { CreateTRPCClientOptions, inferRouterProxyClient } from '@trpc/client' import { createTRPCProxyClient } from '@trpc/client' import { FetchError } from 'ohmyfetch' import type { - AnyMutationProcedure, - AnyProcedure, - AnyQueryProcedure, AnyRouter, - ProcedureRouterRecord, - inferProcedureInput, - inferProcedureOutput, } from '@trpc/server' import { createFlatProxy, createRecursiveProxy } from '@trpc/server/shared' -import type { - AsyncData, - AsyncDataOptions, - KeyOfRes, - PickFrom, - _Transform, -} from 'nuxt/dist/app/composables/asyncData' import { hash } from 'ohash' +import type { DecoratedProcedureRecord } from './types' /** * Calculates the key used for `useAsyncData` call @@ -59,50 +47,6 @@ function createNuxtProxyDecoration(name: string, clie }) } -/** - * @internal - */ -export type DecorateProcedure< - TProcedure extends AnyProcedure, - TPath extends string, -> = TProcedure extends AnyQueryProcedure - ? { - query: < - TData = inferProcedureOutput, - Transform extends _Transform = _Transform, - PickKeys extends KeyOfRes = KeyOfRes, - >( - input: inferProcedureInput, - opts?: AsyncDataOptions, - ) => AsyncData, PickKeys>, TRPCClientErrorLike> - } : TProcedure extends AnyMutationProcedure ? { - mutate: < - TData = inferProcedureOutput, - Transform extends _Transform = _Transform, - PickKeys extends KeyOfRes = KeyOfRes, - >( - input: inferProcedureInput, - opts?: AsyncDataOptions, - ) => AsyncData, PickKeys>, TRPCClientErrorLike> - } : never - -/** -* @internal -*/ -export type DecoratedProcedureRecord< - TProcedures extends ProcedureRouterRecord, - TPath extends string = '', -> = { - [TKey in keyof TProcedures]: TProcedures[TKey] extends AnyRouter - ? DecoratedProcedureRecord< - TProcedures[TKey]['_def']['record'], - `${TPath}${TKey & string}.` - > - : TProcedures[TKey] extends AnyProcedure - ? DecorateProcedure - : never; -} - export function createTRPCNuxtProxyClient(opts: CreateTRPCClientOptions) { const client = createTRPCProxyClient(opts) diff --git a/src/runtime/types.ts b/src/runtime/types.ts new file mode 100644 index 0000000..cf049a1 --- /dev/null +++ b/src/runtime/types.ts @@ -0,0 +1,61 @@ +import type { TRPCClientErrorLike } from '@trpc/client' +import type { + AnyMutationProcedure, + AnyProcedure, + AnyQueryProcedure, + AnyRouter, + ProcedureRouterRecord, + inferProcedureInput, + inferProcedureOutput, +} from '@trpc/server' +import type { + AsyncData, + AsyncDataOptions, + KeyOfRes, + PickFrom, + _Transform, +} from 'nuxt/dist/app/composables/asyncData' + +/** + * @internal + */ +export type DecorateProcedure< + TProcedure extends AnyProcedure, + TPath extends string, +> = TProcedure extends AnyQueryProcedure + ? { + query: < + TData = inferProcedureOutput, + Transform extends _Transform = _Transform, + PickKeys extends KeyOfRes = KeyOfRes, + >( + input: inferProcedureInput, + opts?: AsyncDataOptions, + ) => AsyncData, PickKeys>, TRPCClientErrorLike> + } : TProcedure extends AnyMutationProcedure ? { + mutate: < + TData = inferProcedureOutput, + Transform extends _Transform = _Transform, + PickKeys extends KeyOfRes = KeyOfRes, + >( + input: inferProcedureInput, + opts?: AsyncDataOptions, + ) => AsyncData, PickKeys>, TRPCClientErrorLike> + } : never + +/** +* @internal +*/ +export type DecoratedProcedureRecord< + TProcedures extends ProcedureRouterRecord, + TPath extends string = '', +> = { + [TKey in keyof TProcedures]: TProcedures[TKey] extends AnyRouter + ? DecoratedProcedureRecord< + TProcedures[TKey]['_def']['record'], + `${TPath}${TKey & string}.` + > + : TProcedures[TKey] extends AnyProcedure + ? DecorateProcedure + : never; +}