mirror of
https://github.com/ArthurDanjou/trpc-nuxt.git
synced 2026-01-23 16:30:41 +01:00
feat: allow providing a transform output type
This commit is contained in:
@@ -1,4 +1,13 @@
|
||||
<script setup lang="ts">
|
||||
import { TRPCClientError, TRPCClientErrorLike } from '@trpc/client'
|
||||
import type { inferRouterOutputs } from '@trpc/server'
|
||||
import type { AppRouter } from '@/server/trpc/routers'
|
||||
|
||||
type RouterOutput = inferRouterOutputs<AppRouter>
|
||||
type GetTodosOutput = RouterOutput['todo']['getTodos']
|
||||
|
||||
type ErrorOutput = TRPCClientError<AppRouter>
|
||||
|
||||
const { $client } = useNuxtApp()
|
||||
|
||||
const addTodo = async () => {
|
||||
|
||||
@@ -50,12 +50,14 @@ type DecorateProcedure<
|
||||
> = TProcedure extends AnyQueryProcedure
|
||||
? {
|
||||
useQuery: <
|
||||
TData = inferTransformedProcedureOutput<TProcedure>,
|
||||
PickKeys extends KeysOf<TData> = KeysOf<TData>,
|
||||
ResT = inferTransformedProcedureOutput<TProcedure>,
|
||||
DataE = TRPCClientErrorLike<TProcedure>,
|
||||
DataT = ResT,
|
||||
PickKeys extends KeysOf<DataT> = KeysOf<DataT>,
|
||||
>(
|
||||
input: inferProcedureInput<TProcedure>,
|
||||
opts?: AsyncDataOptions<TData, TData, PickKeys> & { trpc?: TRPCRequestOptions },
|
||||
) => AsyncData<PickFrom<TData, PickKeys>, TRPCClientErrorLike<TProcedure>>,
|
||||
opts?: AsyncDataOptions<ResT, DataT, PickKeys> & { trpc?: TRPCRequestOptions },
|
||||
) => AsyncData<PickFrom<DataT, PickKeys>, DataE>,
|
||||
query: Resolver<TProcedure>
|
||||
} : TProcedure extends AnyMutationProcedure ? {
|
||||
mutate: Resolver<TProcedure>
|
||||
|
||||
Reference in New Issue
Block a user