@trpc/react-query 10.6.0 → 10.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{createHooksInternal-10b1b7ef.mjs → createHooksInternal-9c1f8ad9.mjs} +25 -11
- package/dist/{createHooksInternal-860b8183.js → createHooksInternal-d8e5577b.js} +26 -9
- package/dist/createTRPCReact.d.ts +30 -9
- package/dist/createTRPCReact.d.ts.map +1 -1
- package/dist/{getArrayQueryKey-671d083c.js → getArrayQueryKey-4bdb5cc2.js} +6 -1
- package/dist/{getArrayQueryKey-30a7f2f6.mjs → getArrayQueryKey-86134f8b.mjs} +6 -1
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/dist/internals/context.d.ts +35 -23
- package/dist/internals/context.d.ts.map +1 -1
- package/dist/internals/getArrayQueryKey.d.ts +9 -5
- package/dist/internals/getArrayQueryKey.d.ts.map +1 -1
- package/dist/internals/getClientArgs.d.ts +2 -0
- package/dist/internals/getClientArgs.d.ts.map +1 -0
- package/dist/internals/getQueryKey.d.ts.map +1 -1
- package/dist/internals/useHookResult.d.ts +10 -0
- package/dist/internals/useHookResult.d.ts.map +1 -0
- package/dist/shared/hooks/createHooksInternal.d.ts +19 -116
- package/dist/shared/hooks/createHooksInternal.d.ts.map +1 -1
- package/dist/shared/hooks/deprecated/createHooksInternal.d.ts +61 -0
- package/dist/shared/hooks/deprecated/createHooksInternal.d.ts.map +1 -0
- package/dist/shared/hooks/types.d.ts +78 -0
- package/dist/shared/hooks/types.d.ts.map +1 -0
- package/dist/shared/index.d.ts +12 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +5 -2
- package/dist/shared/index.mjs +2 -2
- package/dist/shared/proxy/decorationProxy.d.ts.map +1 -1
- package/dist/shared/proxy/utilsProxy.d.ts +6 -5
- package/dist/shared/proxy/utilsProxy.d.ts.map +1 -1
- package/dist/ssg/index.js +1 -1
- package/dist/ssg/index.mjs +1 -1
- package/dist/ssg/ssgProxy.d.ts +3 -3
- package/dist/ssg/ssgProxy.d.ts.map +1 -1
- package/dist/utils/inferReactQueryProcedure.d.ts +1 -1
- package/dist/utils/inferReactQueryProcedure.d.ts.map +1 -1
- package/package.json +8 -6
- package/src/createTRPCReact.tsx +79 -24
- package/src/internals/context.tsx +53 -52
- package/src/internals/getArrayQueryKey.test.ts +11 -0
- package/src/internals/getArrayQueryKey.ts +11 -2
- package/src/internals/getClientArgs.ts +7 -0
- package/src/internals/getQueryKey.ts +2 -1
- package/src/internals/useHookResult.ts +18 -0
- package/src/shared/hooks/createHooksInternal.tsx +71 -309
- package/src/shared/hooks/deprecated/createHooksInternal.tsx +628 -0
- package/src/shared/hooks/types.ts +151 -0
- package/src/shared/index.ts +17 -0
- package/src/shared/proxy/decorationProxy.ts +7 -0
- package/src/shared/proxy/utilsProxy.ts +7 -3
- package/src/ssg/ssgProxy.ts +8 -4
- package/src/utils/inferReactQueryProcedure.ts +1 -1
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DefinedUseQueryResult,
|
|
3
|
+
DehydratedState,
|
|
4
|
+
InfiniteQueryObserverSuccessResult,
|
|
5
|
+
InitialDataFunction,
|
|
6
|
+
QueryObserverSuccessResult,
|
|
7
|
+
QueryOptions,
|
|
8
|
+
UseInfiniteQueryOptions,
|
|
9
|
+
UseInfiniteQueryResult,
|
|
10
|
+
UseMutationOptions,
|
|
11
|
+
UseMutationResult,
|
|
12
|
+
UseQueryOptions,
|
|
13
|
+
UseQueryResult,
|
|
14
|
+
} from '@tanstack/react-query';
|
|
15
|
+
import {
|
|
16
|
+
CreateTRPCClientOptions,
|
|
17
|
+
TRPCClient,
|
|
18
|
+
TRPCRequestOptions,
|
|
19
|
+
} from '@trpc/client';
|
|
20
|
+
import { AnyRouter } from '@trpc/server';
|
|
21
|
+
import { ReactNode } from 'react';
|
|
22
|
+
import { TRPCContextProps } from '../../internals/context';
|
|
23
|
+
import { TRPCHookResult } from '../../internals/useHookResult';
|
|
24
|
+
|
|
25
|
+
export type OutputWithCursor<TData, TCursor = any> = {
|
|
26
|
+
cursor: TCursor | null;
|
|
27
|
+
data: TData;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export interface TRPCReactRequestOptions
|
|
31
|
+
// For RQ, we use their internal AbortSignals instead of letting the user pass their own
|
|
32
|
+
extends Omit<TRPCRequestOptions, 'signal'> {
|
|
33
|
+
/**
|
|
34
|
+
* Opt out of SSR for this query by passing `ssr: false`
|
|
35
|
+
*/
|
|
36
|
+
ssr?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Opt out or into aborting request on unmount
|
|
39
|
+
*/
|
|
40
|
+
abortOnUnmount?: boolean;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface TRPCUseQueryBaseOptions {
|
|
44
|
+
/**
|
|
45
|
+
* tRPC-related options
|
|
46
|
+
*/
|
|
47
|
+
trpc?: TRPCReactRequestOptions;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export interface UseTRPCQueryOptions<TPath, TInput, TOutput, TData, TError>
|
|
51
|
+
extends UseQueryOptions<TOutput, TError, TData, [TPath, TInput]>,
|
|
52
|
+
TRPCUseQueryBaseOptions {}
|
|
53
|
+
|
|
54
|
+
/** @internal **/
|
|
55
|
+
export interface DefinedUseTRPCQueryOptions<
|
|
56
|
+
TPath,
|
|
57
|
+
TInput,
|
|
58
|
+
TOutput,
|
|
59
|
+
TData,
|
|
60
|
+
TError,
|
|
61
|
+
> extends UseTRPCQueryOptions<TPath, TInput, TOutput, TData, TError> {
|
|
62
|
+
initialData: TOutput | InitialDataFunction<TOutput>;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export interface TRPCQueryOptions<TPath, TInput, TData, TError>
|
|
66
|
+
extends QueryOptions<TData, TError, TData, [TPath, TInput]>,
|
|
67
|
+
TRPCUseQueryBaseOptions {}
|
|
68
|
+
|
|
69
|
+
export interface UseTRPCInfiniteQueryOptions<TPath, TInput, TOutput, TError>
|
|
70
|
+
extends UseInfiniteQueryOptions<
|
|
71
|
+
TOutput,
|
|
72
|
+
TError,
|
|
73
|
+
TOutput,
|
|
74
|
+
TOutput,
|
|
75
|
+
[TPath, TInput]
|
|
76
|
+
>,
|
|
77
|
+
TRPCUseQueryBaseOptions {}
|
|
78
|
+
|
|
79
|
+
export interface UseTRPCMutationOptions<
|
|
80
|
+
TInput,
|
|
81
|
+
TError,
|
|
82
|
+
TOutput,
|
|
83
|
+
TContext = unknown,
|
|
84
|
+
> extends UseMutationOptions<TOutput, TError, TInput, TContext>,
|
|
85
|
+
TRPCUseQueryBaseOptions {}
|
|
86
|
+
|
|
87
|
+
export interface UseTRPCSubscriptionOptions<TOutput, TError> {
|
|
88
|
+
enabled?: boolean;
|
|
89
|
+
onStarted?: () => void;
|
|
90
|
+
onData: (data: TOutput) => void;
|
|
91
|
+
onError?: (err: TError) => void;
|
|
92
|
+
}
|
|
93
|
+
export interface TRPCProviderProps<TRouter extends AnyRouter, TSSRContext>
|
|
94
|
+
extends TRPCContextProps<TRouter, TSSRContext> {
|
|
95
|
+
children: ReactNode;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export type TRPCProvider<TRouter extends AnyRouter, TSSRContext> = (
|
|
99
|
+
props: TRPCProviderProps<TRouter, TSSRContext>,
|
|
100
|
+
) => JSX.Element;
|
|
101
|
+
|
|
102
|
+
export type UseDehydratedState<TRouter extends AnyRouter> = (
|
|
103
|
+
client: TRPCClient<TRouter>,
|
|
104
|
+
trpcState: DehydratedState | undefined,
|
|
105
|
+
) => DehydratedState | undefined;
|
|
106
|
+
|
|
107
|
+
export type CreateClient<TRouter extends AnyRouter> = (
|
|
108
|
+
opts: CreateTRPCClientOptions<TRouter>,
|
|
109
|
+
) => TRPCClient<TRouter>;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* @internal
|
|
113
|
+
*/
|
|
114
|
+
export type UseTRPCQueryResult<TData, TError> = UseQueryResult<TData, TError> &
|
|
115
|
+
TRPCHookResult;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* @internal
|
|
119
|
+
*/
|
|
120
|
+
export type DefinedUseTRPCQueryResult<TData, TError> = DefinedUseQueryResult<
|
|
121
|
+
TData,
|
|
122
|
+
TError
|
|
123
|
+
> &
|
|
124
|
+
TRPCHookResult;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* @internal
|
|
128
|
+
*/
|
|
129
|
+
export type UseTRPCQuerySuccessResult<TData, TError> =
|
|
130
|
+
QueryObserverSuccessResult<TData, TError> & TRPCHookResult;
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* @internal
|
|
134
|
+
*/
|
|
135
|
+
export type UseTRPCInfiniteQueryResult<TData, TError> = UseInfiniteQueryResult<
|
|
136
|
+
TData,
|
|
137
|
+
TError
|
|
138
|
+
> &
|
|
139
|
+
TRPCHookResult;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* @internal
|
|
143
|
+
*/
|
|
144
|
+
export type UseTRPCInfiniteQuerySuccessResult<TData, TError> =
|
|
145
|
+
InfiniteQueryObserverSuccessResult<TData, TError> & TRPCHookResult;
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* @internal
|
|
149
|
+
*/
|
|
150
|
+
export type UseTRPCMutationResult<TData, TError, TVariables, TContext> =
|
|
151
|
+
UseMutationResult<TData, TError, TVariables, TContext> & TRPCHookResult;
|
package/src/shared/index.ts
CHANGED
|
@@ -9,3 +9,20 @@ export type { TRPCUseQueries } from '../internals/useQueries';
|
|
|
9
9
|
export * from './hooks/createHooksInternal';
|
|
10
10
|
export * from './queryClient';
|
|
11
11
|
export * from './types';
|
|
12
|
+
export * from './hooks/types';
|
|
13
|
+
|
|
14
|
+
export {
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated this is an internal function
|
|
17
|
+
*/
|
|
18
|
+
getClientArgs,
|
|
19
|
+
} from '../internals/getClientArgs';
|
|
20
|
+
|
|
21
|
+
export {
|
|
22
|
+
/**
|
|
23
|
+
* @deprecated
|
|
24
|
+
*/
|
|
25
|
+
TRPCContext,
|
|
26
|
+
} from './../internals/context';
|
|
27
|
+
|
|
28
|
+
export * from '../internals/context';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AnyRouter } from '@trpc/server';
|
|
2
2
|
import { createRecursiveProxy } from '@trpc/server/shared';
|
|
3
|
+
import { getArrayQueryKey } from '../../internals/getArrayQueryKey';
|
|
3
4
|
import { getQueryKey } from '../../internals/getQueryKey';
|
|
4
5
|
import { CreateReactQueryHooks } from '../hooks/createHooksInternal';
|
|
5
6
|
|
|
@@ -28,6 +29,12 @@ export function createReactProxyDecoration<
|
|
|
28
29
|
const [input, ...rest] = args;
|
|
29
30
|
|
|
30
31
|
const queryKey = getQueryKey(path, input);
|
|
32
|
+
|
|
33
|
+
// Expose queryKey helper
|
|
34
|
+
if (lastArg === 'getQueryKey') {
|
|
35
|
+
return getArrayQueryKey(queryKey, (rest[0] as any) ?? 'any');
|
|
36
|
+
}
|
|
37
|
+
|
|
31
38
|
if (lastArg.startsWith('useSuspense')) {
|
|
32
39
|
const opts = rest[0] || {};
|
|
33
40
|
const fn =
|
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
AnyRouter,
|
|
16
16
|
Filter,
|
|
17
17
|
ProcedureOptions,
|
|
18
|
+
ProtectedIntersection,
|
|
18
19
|
inferProcedureInput,
|
|
19
20
|
} from '@trpc/server';
|
|
20
21
|
import {
|
|
@@ -24,11 +25,11 @@ import {
|
|
|
24
25
|
} from '@trpc/server/shared';
|
|
25
26
|
import {
|
|
26
27
|
DecoratedProxyTRPCContextProps,
|
|
27
|
-
TRPCContextState,
|
|
28
28
|
TRPCFetchInfiniteQueryOptions,
|
|
29
29
|
TRPCFetchQueryOptions,
|
|
30
30
|
contextProps,
|
|
31
31
|
} from '../../internals/context';
|
|
32
|
+
import { TRPCContextState } from '../../internals/context';
|
|
32
33
|
import { getQueryKey } from '../../internals/getQueryKey';
|
|
33
34
|
|
|
34
35
|
type DecorateProcedure<
|
|
@@ -171,6 +172,7 @@ type DecorateRouter = {
|
|
|
171
172
|
* @link https://react-query.tanstack.com/guides/query-invalidation
|
|
172
173
|
*/
|
|
173
174
|
invalidate(
|
|
175
|
+
input?: undefined,
|
|
174
176
|
filters?: InvalidateQueryFilters,
|
|
175
177
|
options?: InvalidateOptions,
|
|
176
178
|
): Promise<void>;
|
|
@@ -195,8 +197,10 @@ type AnyDecoratedProcedure = DecorateProcedure<any, any>;
|
|
|
195
197
|
export type CreateReactUtilsProxy<
|
|
196
198
|
TRouter extends AnyRouter,
|
|
197
199
|
TSSRContext,
|
|
198
|
-
> =
|
|
199
|
-
DecoratedProxyTRPCContextProps<TRouter, TSSRContext
|
|
200
|
+
> = ProtectedIntersection<
|
|
201
|
+
DecoratedProxyTRPCContextProps<TRouter, TSSRContext>,
|
|
202
|
+
DecoratedProcedureUtilsRecord<TRouter>
|
|
203
|
+
>;
|
|
200
204
|
|
|
201
205
|
/**
|
|
202
206
|
* @internal
|
package/src/ssg/ssgProxy.ts
CHANGED
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
AnyQueryProcedure,
|
|
10
10
|
AnyRouter,
|
|
11
11
|
Filter,
|
|
12
|
+
ProtectedIntersection,
|
|
12
13
|
inferHandlerInput,
|
|
13
14
|
} from '@trpc/server';
|
|
14
15
|
import {
|
|
@@ -67,10 +68,13 @@ export function createProxySSGHelpers<TRouter extends AnyRouter>(
|
|
|
67
68
|
) {
|
|
68
69
|
const helpers = createSSGHelpers(opts);
|
|
69
70
|
|
|
70
|
-
type CreateProxySSGHelpers =
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
type CreateProxySSGHelpers = ProtectedIntersection<
|
|
72
|
+
{
|
|
73
|
+
queryClient: QueryClient;
|
|
74
|
+
dehydrate: (opts?: DehydrateOptions) => DehydratedState;
|
|
75
|
+
},
|
|
76
|
+
DecoratedProcedureSSGRecord<TRouter>
|
|
77
|
+
>;
|
|
74
78
|
|
|
75
79
|
return createFlatProxy<CreateProxySSGHelpers>((key) => {
|
|
76
80
|
if (key === 'queryClient') {
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
AnyRouter,
|
|
7
7
|
inferProcedureInput,
|
|
8
8
|
} from '@trpc/server';
|
|
9
|
-
import { inferTransformedProcedureOutput } from '@trpc/server/
|
|
9
|
+
import { inferTransformedProcedureOutput } from '@trpc/server/shared';
|
|
10
10
|
import { UseTRPCMutationOptions, UseTRPCQueryOptions } from '../shared';
|
|
11
11
|
|
|
12
12
|
type InferQueryOptions<
|