@trpc/react-query 11.1.3-alpha-tmp-issues-6785.34 → 11.1.3-alpha-tmp-tsdown.24

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.
Files changed (164) hide show
  1. package/dist/_virtual/rolldown_runtime.js +30 -0
  2. package/dist/createTRPCQueryUtils.d.mts +11 -0
  3. package/dist/createTRPCQueryUtils.d.mts.map +1 -0
  4. package/dist/createTRPCQueryUtils.d.ts +10 -3
  5. package/dist/createTRPCQueryUtils.d.ts.map +1 -1
  6. package/dist/createTRPCQueryUtils.js +8 -12
  7. package/dist/createTRPCQueryUtils.mjs +8 -9
  8. package/dist/createTRPCQueryUtils.mjs.map +1 -0
  9. package/dist/createTRPCReact.d.mts +142 -0
  10. package/dist/createTRPCReact.d.mts.map +1 -0
  11. package/dist/createTRPCReact.d.ts +91 -96
  12. package/dist/createTRPCReact.d.ts.map +1 -1
  13. package/dist/createTRPCReact.js +27 -54
  14. package/dist/createTRPCReact.mjs +27 -32
  15. package/dist/createTRPCReact.mjs.map +1 -0
  16. package/dist/index.d.mts +6 -0
  17. package/dist/index.d.ts +6 -6
  18. package/dist/index.js +11 -15
  19. package/dist/index.mjs +7 -4
  20. package/dist/internals/context.d.mts +163 -0
  21. package/dist/internals/context.d.mts.map +1 -0
  22. package/dist/internals/context.d.ts +145 -139
  23. package/dist/internals/context.d.ts.map +1 -1
  24. package/dist/internals/context.js +10 -28
  25. package/dist/internals/context.mjs +8 -5
  26. package/dist/internals/context.mjs.map +1 -0
  27. package/dist/internals/getClientArgs.d.mts +16 -0
  28. package/dist/internals/getClientArgs.d.mts.map +1 -0
  29. package/dist/internals/getClientArgs.d.ts +11 -4
  30. package/dist/internals/getClientArgs.d.ts.map +1 -1
  31. package/dist/internals/getClientArgs.js +18 -20
  32. package/dist/internals/getClientArgs.mjs +18 -18
  33. package/dist/internals/getClientArgs.mjs.map +1 -0
  34. package/dist/internals/getQueryKey.d.mts +44 -0
  35. package/dist/internals/getQueryKey.d.mts.map +1 -0
  36. package/dist/internals/getQueryKey.d.ts +21 -26
  37. package/dist/internals/getQueryKey.d.ts.map +1 -1
  38. package/dist/internals/getQueryKey.js +43 -62
  39. package/dist/internals/getQueryKey.mjs +42 -59
  40. package/dist/internals/getQueryKey.mjs.map +1 -0
  41. package/dist/internals/trpcResult.js +27 -53
  42. package/dist/internals/trpcResult.mjs +26 -31
  43. package/dist/internals/trpcResult.mjs.map +1 -0
  44. package/dist/internals/useQueries.d.mts +53 -0
  45. package/dist/internals/useQueries.d.mts.map +1 -0
  46. package/dist/internals/useQueries.d.ts +19 -24
  47. package/dist/internals/useQueries.d.ts.map +1 -1
  48. package/dist/rsc.d.mts +80 -0
  49. package/dist/rsc.d.mts.map +1 -0
  50. package/dist/rsc.d.ts +56 -56
  51. package/dist/rsc.d.ts.map +1 -1
  52. package/dist/rsc.js +66 -126
  53. package/dist/rsc.mjs +65 -104
  54. package/dist/rsc.mjs.map +1 -0
  55. package/dist/server/index.d.mts +2 -0
  56. package/dist/server/index.d.ts +2 -2
  57. package/dist/server/index.js +2 -6
  58. package/dist/server/index.mjs +3 -1
  59. package/dist/server/ssgProxy.d.mts +32 -0
  60. package/dist/server/ssgProxy.d.mts.map +1 -0
  61. package/dist/server/ssgProxy.d.ts +17 -16
  62. package/dist/server/ssgProxy.d.ts.map +1 -1
  63. package/dist/server/ssgProxy.js +131 -137
  64. package/dist/server/ssgProxy.mjs +130 -134
  65. package/dist/server/ssgProxy.mjs.map +1 -0
  66. package/dist/shared/hooks/createHooksInternal.d.mts +38 -0
  67. package/dist/shared/hooks/createHooksInternal.d.mts.map +1 -0
  68. package/dist/shared/hooks/createHooksInternal.d.ts +29 -22
  69. package/dist/shared/hooks/createHooksInternal.d.ts.map +1 -1
  70. package/dist/shared/hooks/createHooksInternal.js +427 -538
  71. package/dist/shared/hooks/createHooksInternal.mjs +426 -516
  72. package/dist/shared/hooks/createHooksInternal.mjs.map +1 -0
  73. package/dist/shared/hooks/createRootHooks.js +1 -0
  74. package/dist/shared/hooks/createRootHooks.mjs +1 -0
  75. package/dist/shared/hooks/types.d.mts +153 -0
  76. package/dist/shared/hooks/types.d.mts.map +1 -0
  77. package/dist/shared/hooks/types.d.ts +121 -125
  78. package/dist/shared/hooks/types.d.ts.map +1 -1
  79. package/dist/shared/index.d.mts +16 -0
  80. package/dist/shared/index.d.ts +16 -22
  81. package/dist/shared/index.js +18 -21
  82. package/dist/shared/index.mjs +10 -7
  83. package/dist/shared/polymorphism/mutationLike.d.mts +24 -0
  84. package/dist/shared/polymorphism/mutationLike.d.mts.map +1 -0
  85. package/dist/shared/polymorphism/mutationLike.d.ts +13 -6
  86. package/dist/shared/polymorphism/mutationLike.d.ts.map +1 -1
  87. package/dist/shared/polymorphism/queryLike.d.mts +28 -0
  88. package/dist/shared/polymorphism/queryLike.d.mts.map +1 -0
  89. package/dist/shared/polymorphism/queryLike.d.ts +17 -10
  90. package/dist/shared/polymorphism/queryLike.d.ts.map +1 -1
  91. package/dist/shared/polymorphism/routerLike.d.mts +16 -0
  92. package/dist/shared/polymorphism/routerLike.d.mts.map +1 -0
  93. package/dist/shared/polymorphism/routerLike.d.ts +12 -7
  94. package/dist/shared/polymorphism/routerLike.d.ts.map +1 -1
  95. package/dist/shared/polymorphism/utilsLike.d.mts +14 -0
  96. package/dist/shared/polymorphism/utilsLike.d.mts.map +1 -0
  97. package/dist/shared/polymorphism/utilsLike.d.ts +10 -3
  98. package/dist/shared/polymorphism/utilsLike.d.ts.map +1 -1
  99. package/dist/shared/proxy/decorationProxy.d.mts +15 -0
  100. package/dist/shared/proxy/decorationProxy.d.mts.map +1 -0
  101. package/dist/shared/proxy/decorationProxy.d.ts +10 -3
  102. package/dist/shared/proxy/decorationProxy.d.ts.map +1 -1
  103. package/dist/shared/proxy/decorationProxy.js +18 -26
  104. package/dist/shared/proxy/decorationProxy.mjs +17 -23
  105. package/dist/shared/proxy/decorationProxy.mjs.map +1 -0
  106. package/dist/shared/proxy/useQueriesProxy.d.mts +23 -0
  107. package/dist/shared/proxy/useQueriesProxy.d.mts.map +1 -0
  108. package/dist/shared/proxy/useQueriesProxy.d.ts +10 -12
  109. package/dist/shared/proxy/useQueriesProxy.d.ts.map +1 -1
  110. package/dist/shared/proxy/useQueriesProxy.js +25 -23
  111. package/dist/shared/proxy/useQueriesProxy.mjs +24 -20
  112. package/dist/shared/proxy/useQueriesProxy.mjs.map +1 -0
  113. package/dist/shared/proxy/utilsProxy.d.mts +142 -0
  114. package/dist/shared/proxy/utilsProxy.d.mts.map +1 -0
  115. package/dist/shared/proxy/utilsProxy.d.ts +122 -121
  116. package/dist/shared/proxy/utilsProxy.d.ts.map +1 -1
  117. package/dist/shared/proxy/utilsProxy.js +82 -95
  118. package/dist/shared/proxy/utilsProxy.mjs +81 -92
  119. package/dist/shared/proxy/utilsProxy.mjs.map +1 -0
  120. package/dist/shared/queryClient.d.mts +22 -0
  121. package/dist/shared/queryClient.d.mts.map +1 -0
  122. package/dist/shared/queryClient.d.ts +13 -8
  123. package/dist/shared/queryClient.d.ts.map +1 -1
  124. package/dist/shared/queryClient.js +8 -6
  125. package/dist/shared/queryClient.mjs +7 -3
  126. package/dist/shared/queryClient.mjs.map +1 -0
  127. package/dist/shared/types.d.mts +98 -0
  128. package/dist/shared/types.d.mts.map +1 -0
  129. package/dist/shared/types.d.ts +71 -71
  130. package/dist/shared/types.d.ts.map +1 -1
  131. package/dist/utils/createUtilityFunctions.d.mts +24 -0
  132. package/dist/utils/createUtilityFunctions.d.mts.map +1 -0
  133. package/dist/utils/createUtilityFunctions.d.ts +16 -15
  134. package/dist/utils/createUtilityFunctions.d.ts.map +1 -1
  135. package/dist/utils/createUtilityFunctions.js +166 -192
  136. package/dist/utils/createUtilityFunctions.mjs +165 -189
  137. package/dist/utils/createUtilityFunctions.mjs.map +1 -0
  138. package/dist/utils/inferReactQueryProcedure.d.mts +27 -0
  139. package/dist/utils/inferReactQueryProcedure.d.mts.map +1 -0
  140. package/dist/utils/inferReactQueryProcedure.d.ts +14 -12
  141. package/dist/utils/inferReactQueryProcedure.d.ts.map +1 -1
  142. package/package.json +46 -28
  143. package/rsc/package.json +1 -0
  144. package/server/package.json +1 -0
  145. package/shared/package.json +1 -0
  146. package/src/createTRPCReact.tsx +0 -4
  147. package/src/shared/hooks/types.ts +0 -2
  148. package/src/shared/types.ts +2 -2
  149. package/dist/bundle-analysis.json +0 -258
  150. package/dist/index.d.ts.map +0 -1
  151. package/dist/internals/trpcResult.d.ts +0 -18
  152. package/dist/internals/trpcResult.d.ts.map +0 -1
  153. package/dist/server/index.d.ts.map +0 -1
  154. package/dist/shared/hooks/createRootHooks.d.ts +0 -2
  155. package/dist/shared/hooks/createRootHooks.d.ts.map +0 -1
  156. package/dist/shared/index.d.ts.map +0 -1
  157. package/dist/shared/polymorphism/index.d.ts +0 -5
  158. package/dist/shared/polymorphism/index.d.ts.map +0 -1
  159. package/rsc/index.d.ts +0 -1
  160. package/rsc/index.js +0 -1
  161. package/server/index.d.ts +0 -1
  162. package/server/index.js +0 -1
  163. package/shared/index.d.ts +0 -1
  164. package/shared/index.js +0 -1
@@ -1,543 +1,432 @@
1
- 'use strict';
1
+ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.js');
2
+ const require_getQueryKey = require('../../internals/getQueryKey.js');
3
+ const require_context = require('../../internals/context.js');
4
+ const require_useQueriesProxy = require('../proxy/useQueriesProxy.js');
5
+ const require_getClientArgs = require('../../internals/getClientArgs.js');
6
+ const require_trpcResult = require('../../internals/trpcResult.js');
7
+ const require_createUtilityFunctions = require('../../utils/createUtilityFunctions.js');
8
+ const __trpc_client = require_rolldown_runtime.__toESM(require("@trpc/client"));
9
+ const __tanstack_react_query = require_rolldown_runtime.__toESM(require("@tanstack/react-query"));
10
+ const __trpc_server_unstable_core_do_not_import = require_rolldown_runtime.__toESM(require("@trpc/server/unstable-core-do-not-import"));
11
+ const react = require_rolldown_runtime.__toESM(require("react"));
12
+ const react_jsx_runtime = require_rolldown_runtime.__toESM(require("react/jsx-runtime"));
2
13
 
3
- var reactQuery = require('@tanstack/react-query');
4
- var client = require('@trpc/client');
5
- var unstableCoreDoNotImport = require('@trpc/server/unstable-core-do-not-import');
6
- var React = require('react');
7
- var context = require('../../internals/context.js');
8
- var getClientArgs = require('../../internals/getClientArgs.js');
9
- var getQueryKey = require('../../internals/getQueryKey.js');
10
- var trpcResult = require('../../internals/trpcResult.js');
11
- var createUtilityFunctions = require('../../utils/createUtilityFunctions.js');
12
- var useQueriesProxy = require('../proxy/useQueriesProxy.js');
13
-
14
- function _interopNamespaceDefault(e) {
15
- var n = Object.create(null);
16
- if (e) {
17
- Object.keys(e).forEach(function (k) {
18
- if (k !== 'default') {
19
- var d = Object.getOwnPropertyDescriptor(e, k);
20
- Object.defineProperty(n, k, d.get ? d : {
21
- enumerable: true,
22
- get: function () { return e[k]; }
23
- });
24
- }
25
- });
26
- }
27
- n.default = e;
28
- return Object.freeze(n);
29
- }
30
-
31
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
32
-
33
- // TODO: Look into fixing react-compiler support
34
- const trackResult = (result, onTrackResult)=>{
35
- const trackedResult = new Proxy(result, {
36
- get (target, prop) {
37
- onTrackResult(prop);
38
- return target[prop];
39
- }
40
- });
41
- return trackedResult;
14
+ //#region src/shared/hooks/createHooksInternal.tsx
15
+ const trackResult = (result, onTrackResult) => {
16
+ const trackedResult = new Proxy(result, { get(target, prop) {
17
+ onTrackResult(prop);
18
+ return target[prop];
19
+ } });
20
+ return trackedResult;
42
21
  };
43
22
  /**
44
- * @internal
45
- */ function createRootHooks(config) {
46
- const mutationSuccessOverride = config?.overrides?.useMutation?.onSuccess ?? ((options)=>options.originalFn());
47
- const Context = config?.context ?? context.TRPCContext;
48
- const createClient = client.createTRPCClient;
49
- const TRPCProvider = (props)=>{
50
- const { abortOnUnmount = false, queryClient, ssrContext } = props;
51
- const [ssrState, setSSRState] = React__namespace.useState(props.ssrState ?? false);
52
- const client$1 = props.client instanceof client.TRPCUntypedClient ? props.client : client.getUntypedClient(props.client);
53
- const fns = React__namespace.useMemo(()=>createUtilityFunctions.createUtilityFunctions({
54
- client: client$1,
55
- queryClient
56
- }), [
57
- client$1,
58
- queryClient
59
- ]);
60
- const contextValue = React__namespace.useMemo(()=>({
61
- abortOnUnmount,
62
- queryClient,
63
- client: client$1,
64
- ssrContext: ssrContext ?? null,
65
- ssrState,
66
- ...fns
67
- }), [
68
- abortOnUnmount,
69
- client$1,
70
- fns,
71
- queryClient,
72
- ssrContext,
73
- ssrState
74
- ]);
75
- React__namespace.useEffect(()=>{
76
- // Only updating state to `mounted` if we are using SSR.
77
- // This makes it so we don't have an unnecessary re-render when opting out of SSR.
78
- setSSRState((state)=>state ? 'mounted' : false);
79
- }, []);
80
- return /*#__PURE__*/ React__namespace.createElement(Context.Provider, {
81
- value: contextValue
82
- }, props.children);
83
- };
84
- function useContext() {
85
- const context = React__namespace.useContext(Context);
86
- if (!context) {
87
- throw new Error('Unable to find tRPC Context. Did you forget to wrap your App inside `withTRPC` HoC?');
88
- }
89
- return context;
90
- }
91
- /**
92
- * Hack to make sure errors return `status`='error` when doing SSR
93
- * @see https://github.com/trpc/trpc/pull/1645
94
- */ function useSSRQueryOptionsIfNeeded(queryKey, opts) {
95
- const { queryClient, ssrState } = useContext();
96
- return ssrState && ssrState !== 'mounted' && queryClient.getQueryCache().find({
97
- queryKey
98
- })?.state.status === 'error' ? {
99
- retryOnMount: false,
100
- ...opts
101
- } : opts;
102
- }
103
- function useQuery(path, input, opts) {
104
- const context = useContext();
105
- const { abortOnUnmount, client, ssrState, queryClient, prefetchQuery } = context;
106
- const queryKey = getQueryKey.getQueryKeyInternal(path, input, 'query');
107
- const defaultOpts = queryClient.getQueryDefaults(queryKey);
108
- const isInputSkipToken = input === reactQuery.skipToken;
109
- if (typeof window === 'undefined' && ssrState === 'prepass' && opts?.trpc?.ssr !== false && (opts?.enabled ?? defaultOpts?.enabled) !== false && !isInputSkipToken && !queryClient.getQueryCache().find({
110
- queryKey
111
- })) {
112
- void prefetchQuery(queryKey, opts);
113
- }
114
- const ssrOpts = useSSRQueryOptionsIfNeeded(queryKey, {
115
- ...defaultOpts,
116
- ...opts
117
- });
118
- const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? config?.abortOnUnmount ?? abortOnUnmount;
119
- const hook = reactQuery.useQuery({
120
- ...ssrOpts,
121
- queryKey: queryKey,
122
- queryFn: isInputSkipToken ? input : async (queryFunctionContext)=>{
123
- const actualOpts = {
124
- ...ssrOpts,
125
- trpc: {
126
- ...ssrOpts?.trpc,
127
- ...shouldAbortOnUnmount ? {
128
- signal: queryFunctionContext.signal
129
- } : {
130
- signal: null
131
- }
132
- }
133
- };
134
- const result = await client.query(...getClientArgs.getClientArgs(queryKey, actualOpts));
135
- if (unstableCoreDoNotImport.isAsyncIterable(result)) {
136
- return trpcResult.buildQueryFromAsyncIterable(result, queryClient, queryKey);
137
- }
138
- return result;
139
- }
140
- }, queryClient);
141
- hook.trpc = trpcResult.useHookResult({
142
- path
143
- });
144
- return hook;
145
- }
146
- function usePrefetchQuery(path, input, opts) {
147
- const context = useContext();
148
- const queryKey = getQueryKey.getQueryKeyInternal(path, input, 'query');
149
- const isInputSkipToken = input === reactQuery.skipToken;
150
- const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? config?.abortOnUnmount ?? context.abortOnUnmount;
151
- reactQuery.usePrefetchQuery({
152
- ...opts,
153
- queryKey: queryKey,
154
- queryFn: isInputSkipToken ? input : (queryFunctionContext)=>{
155
- const actualOpts = {
156
- trpc: {
157
- ...opts?.trpc,
158
- ...shouldAbortOnUnmount ? {
159
- signal: queryFunctionContext.signal
160
- } : {}
161
- }
162
- };
163
- return context.client.query(...getClientArgs.getClientArgs(queryKey, actualOpts));
164
- }
165
- });
166
- }
167
- function useSuspenseQuery(path, input, opts) {
168
- const context = useContext();
169
- const queryKey = getQueryKey.getQueryKeyInternal(path, input, 'query');
170
- const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? config?.abortOnUnmount ?? context.abortOnUnmount;
171
- const hook = reactQuery.useSuspenseQuery({
172
- ...opts,
173
- queryKey: queryKey,
174
- queryFn: (queryFunctionContext)=>{
175
- const actualOpts = {
176
- ...opts,
177
- trpc: {
178
- ...opts?.trpc,
179
- ...shouldAbortOnUnmount ? {
180
- signal: queryFunctionContext.signal
181
- } : {
182
- signal: null
183
- }
184
- }
185
- };
186
- return context.client.query(...getClientArgs.getClientArgs(queryKey, actualOpts));
187
- }
188
- }, context.queryClient);
189
- hook.trpc = trpcResult.useHookResult({
190
- path
191
- });
192
- return [
193
- hook.data,
194
- hook
195
- ];
196
- }
197
- function useMutation(path, opts) {
198
- const { client, queryClient } = useContext();
199
- const mutationKey = getQueryKey.getMutationKeyInternal(path);
200
- const defaultOpts = queryClient.defaultMutationOptions(queryClient.getMutationDefaults(mutationKey));
201
- const hook = reactQuery.useMutation({
202
- ...opts,
203
- mutationKey: mutationKey,
204
- mutationFn: (input)=>{
205
- return client.mutation(...getClientArgs.getClientArgs([
206
- path,
207
- {
208
- input
209
- }
210
- ], opts));
211
- },
212
- onSuccess (...args) {
213
- const originalFn = ()=>opts?.onSuccess?.(...args) ?? defaultOpts?.onSuccess?.(...args);
214
- return mutationSuccessOverride({
215
- originalFn,
216
- queryClient,
217
- meta: opts?.meta ?? defaultOpts?.meta ?? {}
218
- });
219
- }
220
- }, queryClient);
221
- hook.trpc = trpcResult.useHookResult({
222
- path
223
- });
224
- return hook;
225
- }
226
- const initialStateIdle = {
227
- data: undefined,
228
- error: null,
229
- status: 'idle'
230
- };
231
- const initialStateConnecting = {
232
- data: undefined,
233
- error: null,
234
- status: 'connecting'
235
- };
236
- /* istanbul ignore next -- @preserve */ function useSubscription(path, input, opts) {
237
- const enabled = opts?.enabled ?? input !== reactQuery.skipToken;
238
- const queryKey = reactQuery.hashKey(getQueryKey.getQueryKeyInternal(path, input, 'any'));
239
- const { client } = useContext();
240
- const optsRef = React__namespace.useRef(opts);
241
- React__namespace.useEffect(()=>{
242
- optsRef.current = opts;
243
- });
244
- const [trackedProps] = React__namespace.useState(new Set([]));
245
- const addTrackedProp = React__namespace.useCallback((key)=>{
246
- trackedProps.add(key);
247
- }, [
248
- trackedProps
249
- ]);
250
- const currentSubscriptionRef = React__namespace.useRef(null);
251
- const updateState = React__namespace.useCallback((callback)=>{
252
- const prev = resultRef.current;
253
- const next = resultRef.current = callback(prev);
254
- let shouldUpdate = false;
255
- for (const key of trackedProps){
256
- if (prev[key] !== next[key]) {
257
- shouldUpdate = true;
258
- break;
259
- }
260
- }
261
- if (shouldUpdate) {
262
- setState(trackResult(next, addTrackedProp));
263
- }
264
- }, [
265
- addTrackedProp,
266
- trackedProps
267
- ]);
268
- const reset = React__namespace.useCallback(()=>{
269
- // unsubscribe from the previous subscription
270
- currentSubscriptionRef.current?.unsubscribe();
271
- if (!enabled) {
272
- updateState(()=>({
273
- ...initialStateIdle,
274
- reset
275
- }));
276
- return;
277
- }
278
- updateState(()=>({
279
- ...initialStateConnecting,
280
- reset
281
- }));
282
- const subscription = client.subscription(path.join('.'), input ?? undefined, {
283
- onStarted: ()=>{
284
- optsRef.current.onStarted?.();
285
- updateState((prev)=>({
286
- ...prev,
287
- status: 'pending',
288
- error: null
289
- }));
290
- },
291
- onData: (data)=>{
292
- optsRef.current.onData?.(data);
293
- updateState((prev)=>({
294
- ...prev,
295
- status: 'pending',
296
- data,
297
- error: null
298
- }));
299
- },
300
- onError: (error)=>{
301
- optsRef.current.onError?.(error);
302
- updateState((prev)=>({
303
- ...prev,
304
- status: 'error',
305
- error
306
- }));
307
- },
308
- onConnectionStateChange: (result)=>{
309
- updateState((prev)=>{
310
- switch(result.state){
311
- case 'idle':
312
- return {
313
- ...prev,
314
- status: result.state,
315
- error: null,
316
- data: undefined
317
- };
318
- case 'connecting':
319
- return {
320
- ...prev,
321
- error: result.error,
322
- status: result.state
323
- };
324
- case 'pending':
325
- // handled when data is / onStarted
326
- return prev;
327
- }
328
- });
329
- },
330
- onComplete: ()=>{
331
- optsRef.current.onComplete?.();
332
- // In the case of WebSockets, the connection might not be idle so `onConnectionStateChange` will not be called until the connection is closed.
333
- // In this case, we need to set the state to idle manually.
334
- updateState((prev)=>({
335
- ...prev,
336
- status: 'idle',
337
- error: null,
338
- data: undefined
339
- }));
340
- // (We might want to add a `connectionState` to the state to track the connection state separately)
341
- }
342
- });
343
- currentSubscriptionRef.current = subscription;
344
- // eslint-disable-next-line react-hooks/exhaustive-deps
345
- }, [
346
- client,
347
- queryKey,
348
- enabled,
349
- updateState
350
- ]);
351
- React__namespace.useEffect(()=>{
352
- reset();
353
- return ()=>{
354
- currentSubscriptionRef.current?.unsubscribe();
355
- };
356
- }, [
357
- reset
358
- ]);
359
- const resultRef = React__namespace.useRef(enabled ? {
360
- ...initialStateConnecting,
361
- reset
362
- } : {
363
- ...initialStateIdle,
364
- reset
365
- });
366
- const [state, setState] = React__namespace.useState(trackResult(resultRef.current, addTrackedProp));
367
- return state;
368
- }
369
- function useInfiniteQuery(path, input, opts) {
370
- const { client, ssrState, prefetchInfiniteQuery, queryClient, abortOnUnmount } = useContext();
371
- const queryKey = getQueryKey.getQueryKeyInternal(path, input, 'infinite');
372
- const defaultOpts = queryClient.getQueryDefaults(queryKey);
373
- const isInputSkipToken = input === reactQuery.skipToken;
374
- if (typeof window === 'undefined' && ssrState === 'prepass' && opts?.trpc?.ssr !== false && (opts?.enabled ?? defaultOpts?.enabled) !== false && !isInputSkipToken && !queryClient.getQueryCache().find({
375
- queryKey
376
- })) {
377
- void prefetchInfiniteQuery(queryKey, {
378
- ...defaultOpts,
379
- ...opts
380
- });
381
- }
382
- const ssrOpts = useSSRQueryOptionsIfNeeded(queryKey, {
383
- ...defaultOpts,
384
- ...opts
385
- });
386
- // request option should take priority over global
387
- const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? abortOnUnmount;
388
- const hook = reactQuery.useInfiniteQuery({
389
- ...ssrOpts,
390
- initialPageParam: opts.initialCursor ?? null,
391
- persister: opts.persister,
392
- queryKey: queryKey,
393
- queryFn: isInputSkipToken ? input : (queryFunctionContext)=>{
394
- const actualOpts = {
395
- ...ssrOpts,
396
- trpc: {
397
- ...ssrOpts?.trpc,
398
- ...shouldAbortOnUnmount ? {
399
- signal: queryFunctionContext.signal
400
- } : {
401
- signal: null
402
- }
403
- }
404
- };
405
- return client.query(...getClientArgs.getClientArgs(queryKey, actualOpts, {
406
- pageParam: queryFunctionContext.pageParam ?? opts.initialCursor,
407
- direction: queryFunctionContext.direction
408
- }));
409
- }
410
- }, queryClient);
411
- hook.trpc = trpcResult.useHookResult({
412
- path
413
- });
414
- return hook;
415
- }
416
- function usePrefetchInfiniteQuery(path, input, opts) {
417
- const context = useContext();
418
- const queryKey = getQueryKey.getQueryKeyInternal(path, input, 'infinite');
419
- const defaultOpts = context.queryClient.getQueryDefaults(queryKey);
420
- const isInputSkipToken = input === reactQuery.skipToken;
421
- const ssrOpts = useSSRQueryOptionsIfNeeded(queryKey, {
422
- ...defaultOpts,
423
- ...opts
424
- });
425
- // request option should take priority over global
426
- const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? context.abortOnUnmount;
427
- reactQuery.usePrefetchInfiniteQuery({
428
- ...opts,
429
- initialPageParam: opts.initialCursor ?? null,
430
- queryKey,
431
- queryFn: isInputSkipToken ? input : (queryFunctionContext)=>{
432
- const actualOpts = {
433
- ...ssrOpts,
434
- trpc: {
435
- ...ssrOpts?.trpc,
436
- ...shouldAbortOnUnmount ? {
437
- signal: queryFunctionContext.signal
438
- } : {}
439
- }
440
- };
441
- return context.client.query(...getClientArgs.getClientArgs(queryKey, actualOpts, {
442
- pageParam: queryFunctionContext.pageParam ?? opts.initialCursor,
443
- direction: queryFunctionContext.direction
444
- }));
445
- }
446
- });
447
- }
448
- function useSuspenseInfiniteQuery(path, input, opts) {
449
- const context = useContext();
450
- const queryKey = getQueryKey.getQueryKeyInternal(path, input, 'infinite');
451
- const defaultOpts = context.queryClient.getQueryDefaults(queryKey);
452
- const ssrOpts = useSSRQueryOptionsIfNeeded(queryKey, {
453
- ...defaultOpts,
454
- ...opts
455
- });
456
- // request option should take priority over global
457
- const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? context.abortOnUnmount;
458
- const hook = reactQuery.useSuspenseInfiniteQuery({
459
- ...opts,
460
- initialPageParam: opts.initialCursor ?? null,
461
- queryKey,
462
- queryFn: (queryFunctionContext)=>{
463
- const actualOpts = {
464
- ...ssrOpts,
465
- trpc: {
466
- ...ssrOpts?.trpc,
467
- ...shouldAbortOnUnmount ? {
468
- signal: queryFunctionContext.signal
469
- } : {}
470
- }
471
- };
472
- return context.client.query(...getClientArgs.getClientArgs(queryKey, actualOpts, {
473
- pageParam: queryFunctionContext.pageParam ?? opts.initialCursor,
474
- direction: queryFunctionContext.direction
475
- }));
476
- }
477
- }, context.queryClient);
478
- hook.trpc = trpcResult.useHookResult({
479
- path
480
- });
481
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
482
- return [
483
- hook.data,
484
- hook
485
- ];
486
- }
487
- const useQueries = (queriesCallback, options)=>{
488
- const { ssrState, queryClient, prefetchQuery, client } = useContext();
489
- const proxy = useQueriesProxy.createUseQueries(client);
490
- const queries = queriesCallback(proxy);
491
- if (typeof window === 'undefined' && ssrState === 'prepass') {
492
- for (const query of queries){
493
- const queryOption = query;
494
- if (queryOption.trpc?.ssr !== false && !queryClient.getQueryCache().find({
495
- queryKey: queryOption.queryKey
496
- })) {
497
- void prefetchQuery(queryOption.queryKey, queryOption);
498
- }
499
- }
500
- }
501
- return reactQuery.useQueries({
502
- queries: queries.map((query)=>({
503
- ...query,
504
- queryKey: query.queryKey
505
- })),
506
- combine: options?.combine
507
- }, queryClient);
508
- };
509
- const useSuspenseQueries = (queriesCallback)=>{
510
- const { queryClient, client } = useContext();
511
- const proxy = useQueriesProxy.createUseQueries(client);
512
- const queries = queriesCallback(proxy);
513
- const hook = reactQuery.useSuspenseQueries({
514
- queries: queries.map((query)=>({
515
- ...query,
516
- queryFn: query.queryFn,
517
- queryKey: query.queryKey
518
- }))
519
- }, queryClient);
520
- return [
521
- hook.map((h)=>h.data),
522
- hook
523
- ];
524
- };
525
- return {
526
- Provider: TRPCProvider,
527
- createClient,
528
- useContext,
529
- useUtils: useContext,
530
- useQuery,
531
- usePrefetchQuery,
532
- useSuspenseQuery,
533
- useQueries,
534
- useSuspenseQueries,
535
- useMutation,
536
- useSubscription,
537
- useInfiniteQuery,
538
- usePrefetchInfiniteQuery,
539
- useSuspenseInfiniteQuery
540
- };
23
+ * @internal
24
+ */
25
+ function createRootHooks(config) {
26
+ const mutationSuccessOverride = config?.overrides?.useMutation?.onSuccess ?? ((options) => options.originalFn());
27
+ const Context = config?.context ?? require_context.TRPCContext;
28
+ const createClient = __trpc_client.createTRPCClient;
29
+ const TRPCProvider = (props) => {
30
+ const { abortOnUnmount = false, queryClient, ssrContext } = props;
31
+ const [ssrState, setSSRState] = react.useState(props.ssrState ?? false);
32
+ const client = props.client instanceof __trpc_client.TRPCUntypedClient ? props.client : (0, __trpc_client.getUntypedClient)(props.client);
33
+ const fns = react.useMemo(() => require_createUtilityFunctions.createUtilityFunctions({
34
+ client,
35
+ queryClient
36
+ }), [client, queryClient]);
37
+ const contextValue = react.useMemo(() => ({
38
+ abortOnUnmount,
39
+ queryClient,
40
+ client,
41
+ ssrContext: ssrContext ?? null,
42
+ ssrState,
43
+ ...fns
44
+ }), [
45
+ abortOnUnmount,
46
+ client,
47
+ fns,
48
+ queryClient,
49
+ ssrContext,
50
+ ssrState
51
+ ]);
52
+ react.useEffect(() => {
53
+ setSSRState((state) => state ? "mounted" : false);
54
+ }, []);
55
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Context.Provider, {
56
+ value: contextValue,
57
+ children: props.children
58
+ });
59
+ };
60
+ function useContext() {
61
+ const context = react.useContext(Context);
62
+ if (!context) throw new Error("Unable to find tRPC Context. Did you forget to wrap your App inside `withTRPC` HoC?");
63
+ return context;
64
+ }
65
+ /**
66
+ * Hack to make sure errors return `status`='error` when doing SSR
67
+ * @see https://github.com/trpc/trpc/pull/1645
68
+ */
69
+ function useSSRQueryOptionsIfNeeded(queryKey, opts) {
70
+ const { queryClient, ssrState } = useContext();
71
+ return ssrState && ssrState !== "mounted" && queryClient.getQueryCache().find({ queryKey })?.state.status === "error" ? {
72
+ retryOnMount: false,
73
+ ...opts
74
+ } : opts;
75
+ }
76
+ function useQuery(path, input, opts) {
77
+ const context = useContext();
78
+ const { abortOnUnmount, client, ssrState, queryClient, prefetchQuery } = context;
79
+ const queryKey = require_getQueryKey.getQueryKeyInternal(path, input, "query");
80
+ const defaultOpts = queryClient.getQueryDefaults(queryKey);
81
+ const isInputSkipToken = input === __tanstack_react_query.skipToken;
82
+ if (typeof window === "undefined" && ssrState === "prepass" && opts?.trpc?.ssr !== false && (opts?.enabled ?? defaultOpts?.enabled) !== false && !isInputSkipToken && !queryClient.getQueryCache().find({ queryKey })) prefetchQuery(queryKey, opts);
83
+ const ssrOpts = useSSRQueryOptionsIfNeeded(queryKey, {
84
+ ...defaultOpts,
85
+ ...opts
86
+ });
87
+ const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? config?.abortOnUnmount ?? abortOnUnmount;
88
+ const hook = (0, __tanstack_react_query.useQuery)({
89
+ ...ssrOpts,
90
+ queryKey,
91
+ queryFn: isInputSkipToken ? input : async (queryFunctionContext) => {
92
+ const actualOpts = {
93
+ ...ssrOpts,
94
+ trpc: {
95
+ ...ssrOpts?.trpc,
96
+ ...shouldAbortOnUnmount ? { signal: queryFunctionContext.signal } : { signal: null }
97
+ }
98
+ };
99
+ const result = await client.query(...require_getClientArgs.getClientArgs(queryKey, actualOpts));
100
+ if ((0, __trpc_server_unstable_core_do_not_import.isAsyncIterable)(result)) return require_trpcResult.buildQueryFromAsyncIterable(result, queryClient, queryKey);
101
+ return result;
102
+ }
103
+ }, queryClient);
104
+ hook.trpc = require_trpcResult.useHookResult({ path });
105
+ return hook;
106
+ }
107
+ function usePrefetchQuery(path, input, opts) {
108
+ const context = useContext();
109
+ const queryKey = require_getQueryKey.getQueryKeyInternal(path, input, "query");
110
+ const isInputSkipToken = input === __tanstack_react_query.skipToken;
111
+ const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? config?.abortOnUnmount ?? context.abortOnUnmount;
112
+ (0, __tanstack_react_query.usePrefetchQuery)({
113
+ ...opts,
114
+ queryKey,
115
+ queryFn: isInputSkipToken ? input : (queryFunctionContext) => {
116
+ const actualOpts = { trpc: {
117
+ ...opts?.trpc,
118
+ ...shouldAbortOnUnmount ? { signal: queryFunctionContext.signal } : {}
119
+ } };
120
+ return context.client.query(...require_getClientArgs.getClientArgs(queryKey, actualOpts));
121
+ }
122
+ });
123
+ }
124
+ function useSuspenseQuery(path, input, opts) {
125
+ const context = useContext();
126
+ const queryKey = require_getQueryKey.getQueryKeyInternal(path, input, "query");
127
+ const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? config?.abortOnUnmount ?? context.abortOnUnmount;
128
+ const hook = (0, __tanstack_react_query.useSuspenseQuery)({
129
+ ...opts,
130
+ queryKey,
131
+ queryFn: (queryFunctionContext) => {
132
+ const actualOpts = {
133
+ ...opts,
134
+ trpc: {
135
+ ...opts?.trpc,
136
+ ...shouldAbortOnUnmount ? { signal: queryFunctionContext.signal } : { signal: null }
137
+ }
138
+ };
139
+ return context.client.query(...require_getClientArgs.getClientArgs(queryKey, actualOpts));
140
+ }
141
+ }, context.queryClient);
142
+ hook.trpc = require_trpcResult.useHookResult({ path });
143
+ return [hook.data, hook];
144
+ }
145
+ function useMutation(path, opts) {
146
+ const { client, queryClient } = useContext();
147
+ const mutationKey = require_getQueryKey.getMutationKeyInternal(path);
148
+ const defaultOpts = queryClient.defaultMutationOptions(queryClient.getMutationDefaults(mutationKey));
149
+ const hook = (0, __tanstack_react_query.useMutation)({
150
+ ...opts,
151
+ mutationKey,
152
+ mutationFn: (input) => {
153
+ return client.mutation(...require_getClientArgs.getClientArgs([path, { input }], opts));
154
+ },
155
+ onSuccess(...args) {
156
+ const originalFn = () => opts?.onSuccess?.(...args) ?? defaultOpts?.onSuccess?.(...args);
157
+ return mutationSuccessOverride({
158
+ originalFn,
159
+ queryClient,
160
+ meta: opts?.meta ?? defaultOpts?.meta ?? {}
161
+ });
162
+ }
163
+ }, queryClient);
164
+ hook.trpc = require_trpcResult.useHookResult({ path });
165
+ return hook;
166
+ }
167
+ const initialStateIdle = {
168
+ data: void 0,
169
+ error: null,
170
+ status: "idle"
171
+ };
172
+ const initialStateConnecting = {
173
+ data: void 0,
174
+ error: null,
175
+ status: "connecting"
176
+ };
177
+ /* istanbul ignore next -- @preserve */
178
+ function useSubscription(path, input, opts) {
179
+ const enabled = opts?.enabled ?? input !== __tanstack_react_query.skipToken;
180
+ const queryKey = (0, __tanstack_react_query.hashKey)(require_getQueryKey.getQueryKeyInternal(path, input, "any"));
181
+ const { client } = useContext();
182
+ const optsRef = react.useRef(opts);
183
+ react.useEffect(() => {
184
+ optsRef.current = opts;
185
+ });
186
+ const [trackedProps] = react.useState(new Set([]));
187
+ const addTrackedProp = react.useCallback((key) => {
188
+ trackedProps.add(key);
189
+ }, [trackedProps]);
190
+ const currentSubscriptionRef = react.useRef(null);
191
+ const updateState = react.useCallback((callback) => {
192
+ const prev = resultRef.current;
193
+ const next = resultRef.current = callback(prev);
194
+ let shouldUpdate = false;
195
+ for (const key of trackedProps) if (prev[key] !== next[key]) {
196
+ shouldUpdate = true;
197
+ break;
198
+ }
199
+ if (shouldUpdate) setState(trackResult(next, addTrackedProp));
200
+ }, [addTrackedProp, trackedProps]);
201
+ const reset = react.useCallback(() => {
202
+ currentSubscriptionRef.current?.unsubscribe();
203
+ if (!enabled) {
204
+ updateState(() => ({
205
+ ...initialStateIdle,
206
+ reset
207
+ }));
208
+ return;
209
+ }
210
+ updateState(() => ({
211
+ ...initialStateConnecting,
212
+ reset
213
+ }));
214
+ const subscription = client.subscription(path.join("."), input ?? void 0, {
215
+ onStarted: () => {
216
+ optsRef.current.onStarted?.();
217
+ updateState((prev) => ({
218
+ ...prev,
219
+ status: "pending",
220
+ error: null
221
+ }));
222
+ },
223
+ onData: (data) => {
224
+ optsRef.current.onData?.(data);
225
+ updateState((prev) => ({
226
+ ...prev,
227
+ status: "pending",
228
+ data,
229
+ error: null
230
+ }));
231
+ },
232
+ onError: (error) => {
233
+ optsRef.current.onError?.(error);
234
+ updateState((prev) => ({
235
+ ...prev,
236
+ status: "error",
237
+ error
238
+ }));
239
+ },
240
+ onConnectionStateChange: (result) => {
241
+ updateState((prev) => {
242
+ switch (result.state) {
243
+ case "idle": return {
244
+ ...prev,
245
+ status: result.state,
246
+ error: null,
247
+ data: void 0
248
+ };
249
+ case "connecting": return {
250
+ ...prev,
251
+ error: result.error,
252
+ status: result.state
253
+ };
254
+ case "pending": return prev;
255
+ }
256
+ });
257
+ },
258
+ onComplete: () => {
259
+ optsRef.current.onComplete?.();
260
+ updateState((prev) => ({
261
+ ...prev,
262
+ status: "idle",
263
+ error: null,
264
+ data: void 0
265
+ }));
266
+ }
267
+ });
268
+ currentSubscriptionRef.current = subscription;
269
+ }, [
270
+ client,
271
+ queryKey,
272
+ enabled,
273
+ updateState
274
+ ]);
275
+ react.useEffect(() => {
276
+ reset();
277
+ return () => {
278
+ currentSubscriptionRef.current?.unsubscribe();
279
+ };
280
+ }, [reset]);
281
+ const resultRef = react.useRef(enabled ? {
282
+ ...initialStateConnecting,
283
+ reset
284
+ } : {
285
+ ...initialStateIdle,
286
+ reset
287
+ });
288
+ const [state, setState] = react.useState(trackResult(resultRef.current, addTrackedProp));
289
+ return state;
290
+ }
291
+ function useInfiniteQuery(path, input, opts) {
292
+ const { client, ssrState, prefetchInfiniteQuery, queryClient, abortOnUnmount } = useContext();
293
+ const queryKey = require_getQueryKey.getQueryKeyInternal(path, input, "infinite");
294
+ const defaultOpts = queryClient.getQueryDefaults(queryKey);
295
+ const isInputSkipToken = input === __tanstack_react_query.skipToken;
296
+ if (typeof window === "undefined" && ssrState === "prepass" && opts?.trpc?.ssr !== false && (opts?.enabled ?? defaultOpts?.enabled) !== false && !isInputSkipToken && !queryClient.getQueryCache().find({ queryKey })) prefetchInfiniteQuery(queryKey, {
297
+ ...defaultOpts,
298
+ ...opts
299
+ });
300
+ const ssrOpts = useSSRQueryOptionsIfNeeded(queryKey, {
301
+ ...defaultOpts,
302
+ ...opts
303
+ });
304
+ const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? abortOnUnmount;
305
+ const hook = (0, __tanstack_react_query.useInfiniteQuery)({
306
+ ...ssrOpts,
307
+ initialPageParam: opts.initialCursor ?? null,
308
+ persister: opts.persister,
309
+ queryKey,
310
+ queryFn: isInputSkipToken ? input : (queryFunctionContext) => {
311
+ const actualOpts = {
312
+ ...ssrOpts,
313
+ trpc: {
314
+ ...ssrOpts?.trpc,
315
+ ...shouldAbortOnUnmount ? { signal: queryFunctionContext.signal } : { signal: null }
316
+ }
317
+ };
318
+ return client.query(...require_getClientArgs.getClientArgs(queryKey, actualOpts, {
319
+ pageParam: queryFunctionContext.pageParam ?? opts.initialCursor,
320
+ direction: queryFunctionContext.direction
321
+ }));
322
+ }
323
+ }, queryClient);
324
+ hook.trpc = require_trpcResult.useHookResult({ path });
325
+ return hook;
326
+ }
327
+ function usePrefetchInfiniteQuery(path, input, opts) {
328
+ const context = useContext();
329
+ const queryKey = require_getQueryKey.getQueryKeyInternal(path, input, "infinite");
330
+ const defaultOpts = context.queryClient.getQueryDefaults(queryKey);
331
+ const isInputSkipToken = input === __tanstack_react_query.skipToken;
332
+ const ssrOpts = useSSRQueryOptionsIfNeeded(queryKey, {
333
+ ...defaultOpts,
334
+ ...opts
335
+ });
336
+ const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? context.abortOnUnmount;
337
+ (0, __tanstack_react_query.usePrefetchInfiniteQuery)({
338
+ ...opts,
339
+ initialPageParam: opts.initialCursor ?? null,
340
+ queryKey,
341
+ queryFn: isInputSkipToken ? input : (queryFunctionContext) => {
342
+ const actualOpts = {
343
+ ...ssrOpts,
344
+ trpc: {
345
+ ...ssrOpts?.trpc,
346
+ ...shouldAbortOnUnmount ? { signal: queryFunctionContext.signal } : {}
347
+ }
348
+ };
349
+ return context.client.query(...require_getClientArgs.getClientArgs(queryKey, actualOpts, {
350
+ pageParam: queryFunctionContext.pageParam ?? opts.initialCursor,
351
+ direction: queryFunctionContext.direction
352
+ }));
353
+ }
354
+ });
355
+ }
356
+ function useSuspenseInfiniteQuery(path, input, opts) {
357
+ const context = useContext();
358
+ const queryKey = require_getQueryKey.getQueryKeyInternal(path, input, "infinite");
359
+ const defaultOpts = context.queryClient.getQueryDefaults(queryKey);
360
+ const ssrOpts = useSSRQueryOptionsIfNeeded(queryKey, {
361
+ ...defaultOpts,
362
+ ...opts
363
+ });
364
+ const shouldAbortOnUnmount = opts?.trpc?.abortOnUnmount ?? context.abortOnUnmount;
365
+ const hook = (0, __tanstack_react_query.useSuspenseInfiniteQuery)({
366
+ ...opts,
367
+ initialPageParam: opts.initialCursor ?? null,
368
+ queryKey,
369
+ queryFn: (queryFunctionContext) => {
370
+ const actualOpts = {
371
+ ...ssrOpts,
372
+ trpc: {
373
+ ...ssrOpts?.trpc,
374
+ ...shouldAbortOnUnmount ? { signal: queryFunctionContext.signal } : {}
375
+ }
376
+ };
377
+ return context.client.query(...require_getClientArgs.getClientArgs(queryKey, actualOpts, {
378
+ pageParam: queryFunctionContext.pageParam ?? opts.initialCursor,
379
+ direction: queryFunctionContext.direction
380
+ }));
381
+ }
382
+ }, context.queryClient);
383
+ hook.trpc = require_trpcResult.useHookResult({ path });
384
+ return [hook.data, hook];
385
+ }
386
+ const useQueries = (queriesCallback, options) => {
387
+ const { ssrState, queryClient, prefetchQuery, client } = useContext();
388
+ const proxy = require_useQueriesProxy.createUseQueries(client);
389
+ const queries = queriesCallback(proxy);
390
+ if (typeof window === "undefined" && ssrState === "prepass") for (const query of queries) {
391
+ const queryOption = query;
392
+ if (queryOption.trpc?.ssr !== false && !queryClient.getQueryCache().find({ queryKey: queryOption.queryKey })) prefetchQuery(queryOption.queryKey, queryOption);
393
+ }
394
+ return (0, __tanstack_react_query.useQueries)({
395
+ queries: queries.map((query) => ({
396
+ ...query,
397
+ queryKey: query.queryKey
398
+ })),
399
+ combine: options?.combine
400
+ }, queryClient);
401
+ };
402
+ const useSuspenseQueries = (queriesCallback) => {
403
+ const { queryClient, client } = useContext();
404
+ const proxy = require_useQueriesProxy.createUseQueries(client);
405
+ const queries = queriesCallback(proxy);
406
+ const hook = (0, __tanstack_react_query.useSuspenseQueries)({ queries: queries.map((query) => ({
407
+ ...query,
408
+ queryFn: query.queryFn,
409
+ queryKey: query.queryKey
410
+ })) }, queryClient);
411
+ return [hook.map((h) => h.data), hook];
412
+ };
413
+ return {
414
+ Provider: TRPCProvider,
415
+ createClient,
416
+ useContext,
417
+ useUtils: useContext,
418
+ useQuery,
419
+ usePrefetchQuery,
420
+ useSuspenseQuery,
421
+ useQueries,
422
+ useSuspenseQueries,
423
+ useMutation,
424
+ useSubscription,
425
+ useInfiniteQuery,
426
+ usePrefetchInfiniteQuery,
427
+ useSuspenseInfiniteQuery
428
+ };
541
429
  }
542
430
 
543
- exports.createRootHooks = createRootHooks;
431
+ //#endregion
432
+ exports.createRootHooks = createRootHooks;