@trpc/react-query 11.1.2 → 11.1.3-alpha-tmp-tsdown.23

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