@tanstack/solid-query 5.0.0-alpha.6 → 5.0.0-alpha.61

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/build/lib/QueryClient.cjs +12 -0
  2. package/build/lib/QueryClient.cjs.map +1 -0
  3. package/build/lib/QueryClient.d.ts +30 -0
  4. package/build/lib/QueryClient.d.ts.map +1 -0
  5. package/build/lib/QueryClient.js +10 -0
  6. package/build/lib/QueryClient.js.map +1 -0
  7. package/build/lib/QueryClientProvider.cjs +35 -0
  8. package/build/lib/QueryClientProvider.cjs.map +1 -0
  9. package/build/{types → lib}/QueryClientProvider.d.ts +3 -2
  10. package/build/lib/QueryClientProvider.d.ts.map +1 -0
  11. package/build/lib/QueryClientProvider.js +31 -0
  12. package/build/lib/QueryClientProvider.js.map +1 -0
  13. package/build/lib/__tests__/QueryClientProvider.test.d.ts +2 -0
  14. package/build/lib/__tests__/QueryClientProvider.test.d.ts.map +1 -0
  15. package/build/lib/__tests__/createInfiniteQuery.test.d.ts +2 -0
  16. package/build/lib/__tests__/createInfiniteQuery.test.d.ts.map +1 -0
  17. package/build/lib/__tests__/createMutation.test.d.ts +2 -0
  18. package/build/lib/__tests__/createMutation.test.d.ts.map +1 -0
  19. package/build/lib/__tests__/createQueries.test.d.ts +2 -0
  20. package/build/lib/__tests__/createQueries.test.d.ts.map +1 -0
  21. package/build/lib/__tests__/createQuery.test.d.ts +2 -0
  22. package/build/lib/__tests__/createQuery.test.d.ts.map +1 -0
  23. package/build/lib/__tests__/createQuery.types.test.d.ts +3 -0
  24. package/build/lib/__tests__/createQuery.types.test.d.ts.map +1 -0
  25. package/build/lib/__tests__/suspense.test.d.ts +2 -0
  26. package/build/lib/__tests__/suspense.test.d.ts.map +1 -0
  27. package/build/lib/__tests__/transition.test.d.ts +2 -0
  28. package/build/lib/__tests__/transition.test.d.ts.map +1 -0
  29. package/build/lib/__tests__/useIsFetching.test.d.ts +2 -0
  30. package/build/lib/__tests__/useIsFetching.test.d.ts.map +1 -0
  31. package/build/lib/__tests__/useIsMutating.test.d.ts +2 -0
  32. package/build/lib/__tests__/useIsMutating.test.d.ts.map +1 -0
  33. package/build/{types → lib}/__tests__/utils.d.ts +4 -3
  34. package/build/lib/__tests__/utils.d.ts.map +1 -0
  35. package/build/lib/createBaseQuery.cjs +192 -0
  36. package/build/lib/createBaseQuery.cjs.map +1 -0
  37. package/build/{types → lib}/createBaseQuery.d.ts +3 -1
  38. package/build/lib/createBaseQuery.d.ts.map +1 -0
  39. package/build/lib/createBaseQuery.js +190 -0
  40. package/build/lib/createBaseQuery.js.map +1 -0
  41. package/build/lib/createInfiniteQuery.cjs +14 -0
  42. package/build/lib/createInfiniteQuery.cjs.map +1 -0
  43. package/build/{types → lib}/createInfiniteQuery.d.ts +3 -1
  44. package/build/lib/createInfiniteQuery.d.ts.map +1 -0
  45. package/build/lib/createInfiniteQuery.js +12 -0
  46. package/build/lib/createInfiniteQuery.js.map +1 -0
  47. package/build/lib/createMutation.cjs +44 -0
  48. package/build/lib/createMutation.cjs.map +1 -0
  49. package/build/{types → lib}/createMutation.d.ts +3 -1
  50. package/build/lib/createMutation.d.ts.map +1 -0
  51. package/build/lib/createMutation.js +42 -0
  52. package/build/lib/createMutation.js.map +1 -0
  53. package/build/lib/createQueries.cjs +52 -0
  54. package/build/lib/createQueries.cjs.map +1 -0
  55. package/build/{types → lib}/createQueries.d.ts +12 -9
  56. package/build/lib/createQueries.d.ts.map +1 -0
  57. package/build/lib/createQueries.js +50 -0
  58. package/build/lib/createQueries.js.map +1 -0
  59. package/build/lib/createQuery.cjs +16 -0
  60. package/build/lib/createQuery.cjs.map +1 -0
  61. package/build/lib/createQuery.d.ts +15 -0
  62. package/build/lib/createQuery.d.ts.map +1 -0
  63. package/build/lib/createQuery.js +13 -0
  64. package/build/lib/createQuery.js.map +1 -0
  65. package/build/lib/index.cjs +33 -0
  66. package/build/lib/index.cjs.map +1 -0
  67. package/build/{types → lib}/index.d.ts +4 -1
  68. package/build/lib/index.d.ts.map +1 -0
  69. package/build/lib/index.js +11 -0
  70. package/build/lib/index.js.map +1 -0
  71. package/build/lib/setBatchUpdatesFn.cjs +7 -0
  72. package/build/lib/setBatchUpdatesFn.cjs.map +1 -0
  73. package/build/lib/setBatchUpdatesFn.d.ts +2 -0
  74. package/build/lib/setBatchUpdatesFn.d.ts.map +1 -0
  75. package/build/{source → lib}/setBatchUpdatesFn.js +2 -0
  76. package/build/lib/setBatchUpdatesFn.js.map +1 -0
  77. package/build/lib/types.d.ts +35 -0
  78. package/build/lib/types.d.ts.map +1 -0
  79. package/build/lib/useIsFetching.cjs +18 -0
  80. package/build/lib/useIsFetching.cjs.map +1 -0
  81. package/build/{types → lib}/useIsFetching.d.ts +3 -1
  82. package/build/lib/useIsFetching.d.ts.map +1 -0
  83. package/build/lib/useIsFetching.js +16 -0
  84. package/build/lib/useIsFetching.js.map +1 -0
  85. package/build/lib/useIsMutating.cjs +18 -0
  86. package/build/lib/useIsMutating.cjs.map +1 -0
  87. package/build/{types → lib}/useIsMutating.d.ts +3 -1
  88. package/build/lib/useIsMutating.d.ts.map +1 -0
  89. package/build/lib/useIsMutating.js +16 -0
  90. package/build/lib/useIsMutating.js.map +1 -0
  91. package/build/lib/utils.cjs +12 -0
  92. package/build/lib/utils.cjs.map +1 -0
  93. package/build/{types → lib}/utils.d.ts +1 -0
  94. package/build/lib/utils.d.ts.map +1 -0
  95. package/build/lib/utils.js +10 -0
  96. package/build/lib/utils.js.map +1 -0
  97. package/build/stats.html +6177 -0
  98. package/package.json +22 -28
  99. package/src/QueryClient.ts +84 -0
  100. package/src/QueryClientProvider.tsx +1 -1
  101. package/src/__tests__/QueryClientProvider.test.tsx +2 -3
  102. package/src/__tests__/createInfiniteQuery.test.tsx +83 -19
  103. package/src/__tests__/createMutation.test.tsx +5 -5
  104. package/src/__tests__/createQueries.test.tsx +6 -78
  105. package/src/__tests__/createQuery.test.tsx +66 -334
  106. package/src/__tests__/createQuery.types.test.tsx +21 -1
  107. package/src/__tests__/suspense.test.tsx +7 -90
  108. package/src/__tests__/transition.test.tsx +1 -1
  109. package/src/__tests__/useIsFetching.test.tsx +1 -1
  110. package/src/__tests__/useIsMutating.test.tsx +5 -7
  111. package/src/__tests__/utils.tsx +1 -1
  112. package/src/createBaseQuery.ts +73 -28
  113. package/src/createInfiniteQuery.ts +1 -1
  114. package/src/createMutation.ts +3 -2
  115. package/src/createQueries.ts +32 -14
  116. package/src/createQuery.ts +24 -1
  117. package/src/index.ts +8 -1
  118. package/src/types.ts +4 -2
  119. package/src/useIsFetching.ts +2 -1
  120. package/src/useIsMutating.ts +2 -1
  121. package/build/cjs/index.js +0 -300
  122. package/build/cjs/index.js.map +0 -1
  123. package/build/esm/index.js +0 -285
  124. package/build/esm/index.js.map +0 -1
  125. package/build/source/QueryClientProvider.jsx +0 -21
  126. package/build/source/__tests__/QueryClientProvider.test.jsx +0 -121
  127. package/build/source/__tests__/createInfiniteQuery.test.jsx +0 -1315
  128. package/build/source/__tests__/createMutation.test.jsx +0 -867
  129. package/build/source/__tests__/createQueries.test.jsx +0 -661
  130. package/build/source/__tests__/createQuery.test.jsx +0 -4608
  131. package/build/source/__tests__/createQuery.types.test.jsx +0 -135
  132. package/build/source/__tests__/suspense.test.jsx +0 -721
  133. package/build/source/__tests__/transition.test.jsx +0 -42
  134. package/build/source/__tests__/useIsFetching.test.jsx +0 -190
  135. package/build/source/__tests__/useIsMutating.test.jsx +0 -198
  136. package/build/source/__tests__/utils.jsx +0 -50
  137. package/build/source/createBaseQuery.js +0 -147
  138. package/build/source/createInfiniteQuery.js +0 -8
  139. package/build/source/createMutation.js +0 -38
  140. package/build/source/createQueries.js +0 -32
  141. package/build/source/createQuery.js +0 -6
  142. package/build/source/index.js +0 -14
  143. package/build/source/types.js +0 -2
  144. package/build/source/useIsFetching.js +0 -12
  145. package/build/source/useIsMutating.js +0 -12
  146. package/build/source/utils.js +0 -7
  147. package/build/types/__tests__/QueryClientProvider.test.d.ts +0 -1
  148. package/build/types/__tests__/createInfiniteQuery.test.d.ts +0 -1
  149. package/build/types/__tests__/createMutation.test.d.ts +0 -1
  150. package/build/types/__tests__/createQueries.test.d.ts +0 -1
  151. package/build/types/__tests__/createQuery.test.d.ts +0 -1
  152. package/build/types/__tests__/createQuery.types.test.d.ts +0 -2
  153. package/build/types/__tests__/suspense.test.d.ts +0 -1
  154. package/build/types/__tests__/transition.test.d.ts +0 -1
  155. package/build/types/__tests__/useIsFetching.test.d.ts +0 -1
  156. package/build/types/__tests__/useIsMutating.test.d.ts +0 -1
  157. package/build/types/createQuery.d.ts +0 -11
  158. package/build/types/setBatchUpdatesFn.d.ts +0 -1
  159. package/build/types/types.d.ts +0 -33
  160. package/build/umd/index.js +0 -2
  161. package/build/umd/index.js.map +0 -1
@@ -1,300 +0,0 @@
1
- 'use strict';
2
-
3
- var queryCore = require('@tanstack/query-core');
4
- var solidJs = require('solid-js');
5
- var web = require('solid-js/web');
6
- var store = require('solid-js/store');
7
-
8
- queryCore.notifyManager.setBatchNotifyFunction(solidJs.batch);
9
-
10
- const QueryClientContext = solidJs.createContext(undefined);
11
- const useQueryClient = queryClient => {
12
- const client = solidJs.useContext(QueryClientContext);
13
- if (queryClient) {
14
- return queryClient;
15
- }
16
- if (!client) {
17
- throw new Error('No QueryClient set, use QueryClientProvider to set one');
18
- }
19
- return client;
20
- };
21
- const QueryClientProvider = props => {
22
- solidJs.onMount(() => {
23
- props.client.mount();
24
- });
25
- solidJs.onCleanup(() => props.client.unmount());
26
- return web.createComponent(QueryClientContext.Provider, {
27
- get value() {
28
- return props.client;
29
- },
30
- get children() {
31
- return props.children;
32
- }
33
- });
34
- };
35
-
36
- function shouldThrowError(throwError, params) {
37
- // Allow throwError function to override throwing behavior on a per-error basis
38
- if (typeof throwError === 'function') {
39
- return throwError(...params);
40
- }
41
- return !!throwError;
42
- }
43
-
44
- /* eslint-disable @typescript-eslint/no-unnecessary-condition */
45
-
46
- // Base Query Function that is used to create the query.
47
- function createBaseQuery(options, Observer, queryClient) {
48
- const client = solidJs.createMemo(() => useQueryClient(queryClient?.()));
49
- const defaultedOptions = client().defaultQueryOptions(options());
50
- defaultedOptions._optimisticResults = 'optimistic';
51
- if (web.isServer) {
52
- defaultedOptions.retry = false;
53
- defaultedOptions.throwErrors = true;
54
- }
55
- const observer = new Observer(client(), defaultedOptions);
56
- const [state, setState] = store.createStore(observer.getOptimisticResult(defaultedOptions));
57
- const createServerSubscriber = (resolve, reject) => {
58
- return observer.subscribe(result => {
59
- queryCore.notifyManager.batchCalls(() => {
60
- const unwrappedResult = {
61
- ...store.unwrap(result)
62
- };
63
- if (unwrappedResult.isError) {
64
- if (process.env['NODE_ENV'] === 'development') {
65
- console.error(unwrappedResult.error);
66
- }
67
- reject(unwrappedResult.error);
68
- }
69
- if (unwrappedResult.isSuccess) {
70
- resolve(unwrappedResult);
71
- }
72
- })();
73
- });
74
- };
75
- const createClientSubscriber = () => {
76
- return observer.subscribe(result => {
77
- queryCore.notifyManager.batchCalls(() => {
78
- const unwrappedResult = {
79
- ...store.unwrap(result)
80
- };
81
- // If the query has data we dont suspend but instead mutate the resource
82
- // This could happen when placeholderData/initialData is defined
83
- if (queryResource()?.data && unwrappedResult.data && !queryResource.loading) {
84
- setState(unwrappedResult);
85
- mutate(state);
86
- } else {
87
- setState(unwrappedResult);
88
- refetch();
89
- }
90
- })();
91
- });
92
- };
93
-
94
- /**
95
- * Unsubscribe is set lazily, so that we can subscribe after hydration when needed.
96
- */
97
- let unsubscribe = null;
98
- const [queryResource, {
99
- refetch,
100
- mutate
101
- }] = solidJs.createResource(() => {
102
- return new Promise((resolve, reject) => {
103
- if (web.isServer) {
104
- unsubscribe = createServerSubscriber(resolve, reject);
105
- } else {
106
- if (!unsubscribe) {
107
- unsubscribe = createClientSubscriber();
108
- }
109
- }
110
- if (!state.isLoading) {
111
- resolve(state);
112
- }
113
- });
114
- }, {
115
- initialValue: state,
116
- // If initialData is provided, we resolve the resource immediately
117
- ssrLoadFrom: options().initialData ? 'initial' : 'server',
118
- get deferStream() {
119
- return options().deferStream;
120
- },
121
- /**
122
- * If this resource was populated on the server (either sync render, or streamed in over time), onHydrated
123
- * will be called. This is the point at which we can hydrate the query cache state, and setup the query subscriber.
124
- *
125
- * Leveraging onHydrated allows us to plug into the async and streaming support that solidjs resources already support.
126
- *
127
- * Note that this is only invoked on the client, for queries that were originally run on the server.
128
- */
129
- onHydrated(_k, info) {
130
- if (info.value) {
131
- queryCore.hydrate(client(), {
132
- queries: [{
133
- queryKey: defaultedOptions.queryKey,
134
- queryHash: defaultedOptions.queryHash,
135
- state: info.value
136
- }]
137
- });
138
- }
139
- if (!unsubscribe) {
140
- /**
141
- * Do not refetch query on mount if query was fetched on server,
142
- * even if `staleTime` is not set.
143
- */
144
- const newOptions = {
145
- ...defaultedOptions
146
- };
147
- if (defaultedOptions.staleTime || !defaultedOptions.initialData) {
148
- newOptions.refetchOnMount = false;
149
- }
150
- // Setting the options as an immutable object to prevent
151
- // wonky behavior with observer subscriptions
152
- observer.setOptions(newOptions);
153
- setState(observer.getOptimisticResult(newOptions));
154
- unsubscribe = createClientSubscriber();
155
- }
156
- }
157
- });
158
- solidJs.onCleanup(() => {
159
- if (unsubscribe) {
160
- unsubscribe();
161
- unsubscribe = null;
162
- }
163
- });
164
- solidJs.onMount(() => {
165
- observer.setOptions(defaultedOptions, {
166
- listeners: false
167
- });
168
- });
169
- solidJs.createComputed(() => {
170
- observer.setOptions(client().defaultQueryOptions(options()));
171
- });
172
- solidJs.createComputed(solidJs.on(() => state.status, () => {
173
- if (state.isError && !state.isFetching && shouldThrowError(observer.options.throwErrors, [state.error, observer.getCurrentQuery()])) {
174
- throw state.error;
175
- }
176
- }));
177
- const handler = {
178
- get(target, prop) {
179
- if (prop === 'data') {
180
- return queryResource()?.data;
181
- }
182
- return Reflect.get(target, prop);
183
- }
184
- };
185
- return new Proxy(state, handler);
186
- }
187
-
188
- function createQuery(options, queryClient) {
189
- return createBaseQuery(solidJs.createMemo(() => options()), queryCore.QueryObserver, queryClient);
190
- }
191
-
192
- function useIsFetching(filters, queryClient) {
193
- const client = solidJs.createMemo(() => useQueryClient(queryClient?.()));
194
- const queryCache = solidJs.createMemo(() => client().getQueryCache());
195
- const [fetches, setFetches] = solidJs.createSignal(client().isFetching(filters?.()));
196
- const unsubscribe = queryCache().subscribe(() => {
197
- setFetches(client().isFetching(filters?.()));
198
- });
199
- solidJs.onCleanup(unsubscribe);
200
- return fetches;
201
- }
202
-
203
- function createInfiniteQuery(options, queryClient) {
204
- return createBaseQuery(solidJs.createMemo(() => options()),
205
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
206
- queryCore.InfiniteQueryObserver, queryClient);
207
- }
208
-
209
- // HOOK
210
- function createMutation(options, queryClient) {
211
- const client = useQueryClient(queryClient?.());
212
- const observer = new queryCore.MutationObserver(client, options());
213
- const mutate = (variables, mutateOptions) => {
214
- observer.mutate(variables, mutateOptions).catch(noop);
215
- };
216
- const [state, setState] = store.createStore({
217
- ...observer.getCurrentResult(),
218
- mutate,
219
- mutateAsync: observer.getCurrentResult().mutate
220
- });
221
- solidJs.createComputed(() => {
222
- observer.setOptions(options());
223
- });
224
- solidJs.createComputed(solidJs.on(() => state.status, () => {
225
- if (state.isError && shouldThrowError(observer.options.throwErrors, [state.error])) {
226
- throw state.error;
227
- }
228
- }));
229
- const unsubscribe = observer.subscribe(result => {
230
- setState({
231
- ...result,
232
- mutate,
233
- mutateAsync: result.mutate
234
- });
235
- });
236
- solidJs.onCleanup(unsubscribe);
237
- return state;
238
- }
239
-
240
- // eslint-disable-next-line @typescript-eslint/no-empty-function
241
- function noop() {}
242
-
243
- function useIsMutating(filters, queryClient) {
244
- const client = solidJs.createMemo(() => useQueryClient(queryClient?.()));
245
- const mutationCache = solidJs.createMemo(() => client().getMutationCache());
246
- const [mutations, setMutations] = solidJs.createSignal(client().isMutating(filters?.()));
247
- const unsubscribe = mutationCache().subscribe(_result => {
248
- setMutations(client().isMutating(filters?.()));
249
- });
250
- solidJs.onCleanup(unsubscribe);
251
- return mutations;
252
- }
253
-
254
- function createQueries(queriesOptions, queryClient) {
255
- const client = useQueryClient(queryClient?.());
256
- const defaultedQueries = queriesOptions().queries.map(options => {
257
- const defaultedOptions = client.defaultQueryOptions(options);
258
- defaultedOptions._optimisticResults = 'optimistic';
259
- return defaultedOptions;
260
- });
261
- const observer = new queryCore.QueriesObserver(client, defaultedQueries);
262
- const [state, setState] = store.createStore(observer.getOptimisticResult(defaultedQueries));
263
- const unsubscribe = observer.subscribe(result => {
264
- queryCore.notifyManager.batchCalls(() => {
265
- setState(store.unwrap(result));
266
- })();
267
- });
268
- solidJs.onCleanup(unsubscribe);
269
- solidJs.onMount(() => {
270
- observer.setQueries(defaultedQueries, {
271
- listeners: false
272
- });
273
- });
274
- solidJs.createComputed(() => {
275
- const updatedQueries = queriesOptions().queries.map(options => {
276
- const defaultedOptions = client.defaultQueryOptions(options);
277
- defaultedOptions._optimisticResults = 'optimistic';
278
- return defaultedOptions;
279
- });
280
- observer.setQueries(updatedQueries);
281
- });
282
- return state;
283
- }
284
-
285
- exports.QueryClientContext = QueryClientContext;
286
- exports.QueryClientProvider = QueryClientProvider;
287
- exports.createInfiniteQuery = createInfiniteQuery;
288
- exports.createMutation = createMutation;
289
- exports.createQueries = createQueries;
290
- exports.createQuery = createQuery;
291
- exports.useIsFetching = useIsFetching;
292
- exports.useIsMutating = useIsMutating;
293
- exports.useQueryClient = useQueryClient;
294
- Object.keys(queryCore).forEach(function (k) {
295
- if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
296
- enumerable: true,
297
- get: function () { return queryCore[k]; }
298
- });
299
- });
300
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../src/setBatchUpdatesFn.ts","../../src/QueryClientProvider.tsx","../../src/utils.ts","../../src/createBaseQuery.ts","../../src/createQuery.ts","../../src/useIsFetching.ts","../../src/createInfiniteQuery.ts","../../src/createMutation.ts","../../src/useIsMutating.ts","../../src/createQueries.ts"],"sourcesContent":["import { notifyManager } from '@tanstack/query-core'\nimport { batch } from 'solid-js'\n\nnotifyManager.setBatchNotifyFunction(batch)\n","import type { QueryClient } from '@tanstack/query-core'\nimport type { JSX } from 'solid-js'\nimport { createContext, useContext, onMount, onCleanup } from 'solid-js'\n\nexport const QueryClientContext = createContext<QueryClient | undefined>(\n undefined,\n)\n\nexport const useQueryClient = (queryClient?: QueryClient) => {\n const client = useContext(QueryClientContext)\n\n if (queryClient) {\n return queryClient\n }\n\n if (!client) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one')\n }\n\n return client\n}\n\nexport type QueryClientProviderProps = {\n client: QueryClient\n children?: JSX.Element\n}\n\nexport const QueryClientProvider = (\n props: QueryClientProviderProps,\n): JSX.Element => {\n onMount(() => {\n props.client.mount()\n })\n onCleanup(() => props.client.unmount())\n\n return (\n <QueryClientContext.Provider value={props.client}>\n {props.children}\n </QueryClientContext.Provider>\n )\n}\n","export function shouldThrowError<T extends (...args: any[]) => boolean>(\n throwError: boolean | T | undefined,\n params: Parameters<T>,\n): boolean {\n // Allow throwError function to override throwing behavior on a per-error basis\n if (typeof throwError === 'function') {\n return throwError(...params)\n }\n\n return !!throwError\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n// Had to disable the lint rule because isServer type is defined as false\n// in solid-js/web package. I'll create a GitHub issue with them to see\n// why that happens.\nimport type {\n QueryClient,\n QueryKey,\n QueryObserver,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport { hydrate } from '@tanstack/query-core'\nimport { notifyManager } from '@tanstack/query-core'\nimport type { Accessor } from 'solid-js'\nimport { isServer } from 'solid-js/web'\nimport {\n createComputed,\n createMemo,\n createResource,\n on,\n onCleanup,\n onMount,\n} from 'solid-js'\nimport { createStore, unwrap } from 'solid-js/store'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { CreateBaseQueryOptions } from './types'\nimport { shouldThrowError } from './utils'\n\n// Base Query Function that is used to create the query.\nexport function createBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n options: Accessor<\n CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n >,\n Observer: typeof QueryObserver,\n queryClient?: Accessor<QueryClient>,\n) {\n const client = createMemo(() => useQueryClient(queryClient?.()))\n\n const defaultedOptions = client().defaultQueryOptions(options())\n defaultedOptions._optimisticResults = 'optimistic'\n if (isServer) {\n defaultedOptions.retry = false\n defaultedOptions.throwErrors = true\n }\n const observer = new Observer(client(), defaultedOptions)\n\n const [state, setState] = createStore<QueryObserverResult<TData, TError>>(\n observer.getOptimisticResult(defaultedOptions),\n )\n\n const createServerSubscriber = (\n resolve: (\n data:\n | QueryObserverResult<TData, TError>\n | PromiseLike<QueryObserverResult<TData, TError> | undefined>\n | undefined,\n ) => void,\n reject: (reason?: any) => void,\n ) => {\n return observer.subscribe((result) => {\n notifyManager.batchCalls(() => {\n const unwrappedResult = { ...unwrap(result) }\n if (unwrappedResult.isError) {\n if (process.env['NODE_ENV'] === 'development') {\n console.error(unwrappedResult.error)\n }\n reject(unwrappedResult.error)\n }\n if (unwrappedResult.isSuccess) {\n resolve(unwrappedResult)\n }\n })()\n })\n }\n\n const createClientSubscriber = () => {\n return observer.subscribe((result) => {\n notifyManager.batchCalls(() => {\n const unwrappedResult = { ...unwrap(result) }\n // If the query has data we dont suspend but instead mutate the resource\n // This could happen when placeholderData/initialData is defined\n if (\n queryResource()?.data &&\n unwrappedResult.data &&\n !queryResource.loading\n ) {\n setState(unwrappedResult)\n mutate(state)\n } else {\n setState(unwrappedResult)\n refetch()\n }\n })()\n })\n }\n\n /**\n * Unsubscribe is set lazily, so that we can subscribe after hydration when needed.\n */\n let unsubscribe: (() => void) | null = null\n\n const [queryResource, { refetch, mutate }] = createResource<\n QueryObserverResult<TData, TError> | undefined\n >(\n () => {\n return new Promise((resolve, reject) => {\n if (isServer) {\n unsubscribe = createServerSubscriber(resolve, reject)\n } else {\n if (!unsubscribe) {\n unsubscribe = createClientSubscriber()\n }\n }\n if (!state.isLoading) {\n resolve(state)\n }\n })\n },\n {\n initialValue: state,\n\n // If initialData is provided, we resolve the resource immediately\n ssrLoadFrom: options().initialData ? 'initial' : 'server',\n\n get deferStream() {\n return options().deferStream\n },\n\n /**\n * If this resource was populated on the server (either sync render, or streamed in over time), onHydrated\n * will be called. This is the point at which we can hydrate the query cache state, and setup the query subscriber.\n *\n * Leveraging onHydrated allows us to plug into the async and streaming support that solidjs resources already support.\n *\n * Note that this is only invoked on the client, for queries that were originally run on the server.\n */\n onHydrated(_k, info) {\n if (info.value) {\n hydrate(client(), {\n queries: [\n {\n queryKey: defaultedOptions.queryKey,\n queryHash: defaultedOptions.queryHash,\n state: info.value,\n },\n ],\n })\n }\n\n if (!unsubscribe) {\n /**\n * Do not refetch query on mount if query was fetched on server,\n * even if `staleTime` is not set.\n */\n const newOptions = { ...defaultedOptions }\n if (defaultedOptions.staleTime || !defaultedOptions.initialData) {\n newOptions.refetchOnMount = false\n }\n // Setting the options as an immutable object to prevent\n // wonky behavior with observer subscriptions\n observer.setOptions(newOptions)\n setState(observer.getOptimisticResult(newOptions))\n unsubscribe = createClientSubscriber()\n }\n },\n },\n )\n\n onCleanup(() => {\n if (unsubscribe) {\n unsubscribe()\n unsubscribe = null\n }\n })\n\n onMount(() => {\n observer.setOptions(defaultedOptions, { listeners: false })\n })\n\n createComputed(() => {\n observer.setOptions(client().defaultQueryOptions(options()))\n })\n\n createComputed(\n on(\n () => state.status,\n () => {\n if (\n state.isError &&\n !state.isFetching &&\n shouldThrowError(observer.options.throwErrors, [\n state.error,\n observer.getCurrentQuery(),\n ])\n ) {\n throw state.error\n }\n },\n ),\n )\n\n const handler = {\n get(\n target: QueryObserverResult<TData, TError>,\n prop: keyof QueryObserverResult<TData, TError>,\n ): any {\n if (prop === 'data') {\n return queryResource()?.data\n }\n return Reflect.get(target, prop)\n },\n }\n\n return new Proxy(state, handler)\n}\n","import type { QueryClient, QueryKey, DefaultError } from '@tanstack/query-core'\nimport { QueryObserver } from '@tanstack/query-core'\nimport type { Accessor } from 'solid-js'\nimport { createMemo } from 'solid-js'\nimport { createBaseQuery } from './createBaseQuery'\nimport type {\n CreateQueryOptions,\n CreateQueryResult,\n DefinedCreateQueryResult,\n FunctionedParams,\n SolidQueryOptions,\n} from './types'\n\ntype UndefinedInitialDataOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = FunctionedParams<\n SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {\n initialData?: undefined\n }\n>\n\ntype DefinedInitialDataOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = FunctionedParams<\n SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {\n initialData: TQueryFnData | (() => TQueryFnData)\n }\n>\n\nexport function createQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: () => QueryClient,\n): CreateQueryResult<TData, TError>\n\nexport function createQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: () => QueryClient,\n): DefinedCreateQueryResult<TData, TError>\nexport function createQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: Accessor<QueryClient>,\n) {\n return createBaseQuery(\n createMemo(() => options()),\n QueryObserver,\n queryClient,\n )\n}\n","import type { QueryClient, QueryFilters } from '@tanstack/query-core'\nimport type { Accessor } from 'solid-js'\nimport { createMemo, createSignal, onCleanup } from 'solid-js'\nimport { useQueryClient } from './QueryClientProvider'\n\nexport function useIsFetching(\n filters?: Accessor<QueryFilters>,\n queryClient?: Accessor<QueryClient>,\n): Accessor<number> {\n const client = createMemo(() => useQueryClient(queryClient?.()))\n const queryCache = createMemo(() => client().getQueryCache())\n\n const [fetches, setFetches] = createSignal(client().isFetching(filters?.()))\n\n const unsubscribe = queryCache().subscribe(() => {\n setFetches(client().isFetching(filters?.()))\n })\n\n onCleanup(unsubscribe)\n\n return fetches\n}\n","import type {\n QueryObserver,\n QueryKey,\n QueryClient,\n DefaultError,\n InfiniteData,\n} from '@tanstack/query-core'\nimport { InfiniteQueryObserver } from '@tanstack/query-core'\nimport type {\n CreateInfiniteQueryOptions,\n CreateInfiniteQueryResult,\n} from './types'\nimport { createBaseQuery } from './createBaseQuery'\nimport { createMemo } from 'solid-js'\nimport type { Accessor } from 'solid-js'\n\nexport function createInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: Accessor<QueryClient>,\n): CreateInfiniteQueryResult<TData, TError> {\n return createBaseQuery(\n createMemo(() => options()),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n InfiniteQueryObserver as typeof QueryObserver,\n queryClient,\n ) as CreateInfiniteQueryResult<TData, TError>\n}\n","import type { QueryClient, DefaultError } from '@tanstack/query-core'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n CreateMutateFunction,\n CreateMutationOptions,\n CreateMutationResult,\n} from './types'\nimport type { Accessor } from 'solid-js'\nimport { createComputed, onCleanup, on } from 'solid-js'\nimport { createStore } from 'solid-js/store'\nimport { shouldThrowError } from './utils'\n\n// HOOK\nexport function createMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n options: CreateMutationOptions<TData, TError, TVariables, TContext>,\n queryClient?: Accessor<QueryClient>,\n): CreateMutationResult<TData, TError, TVariables, TContext> {\n const client = useQueryClient(queryClient?.())\n\n const observer = new MutationObserver<TData, TError, TVariables, TContext>(\n client,\n options(),\n )\n\n const mutate: CreateMutateFunction<TData, TError, TVariables, TContext> = (\n variables,\n mutateOptions,\n ) => {\n observer.mutate(variables, mutateOptions).catch(noop)\n }\n\n const [state, setState] = createStore<\n CreateMutationResult<TData, TError, TVariables, TContext>\n >({\n ...observer.getCurrentResult(),\n mutate,\n mutateAsync: observer.getCurrentResult().mutate,\n })\n\n createComputed(() => {\n observer.setOptions(options())\n })\n\n createComputed(\n on(\n () => state.status,\n () => {\n if (\n state.isError &&\n shouldThrowError(observer.options.throwErrors, [state.error])\n ) {\n throw state.error\n }\n },\n ),\n )\n\n const unsubscribe = observer.subscribe((result) => {\n setState({\n ...result,\n mutate,\n mutateAsync: result.mutate,\n })\n })\n\n onCleanup(unsubscribe)\n\n return state\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n","import type { MutationFilters, QueryClient } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { Accessor } from 'solid-js'\nimport { createSignal, onCleanup, createMemo } from 'solid-js'\n\nexport function useIsMutating(\n filters?: Accessor<MutationFilters>,\n queryClient?: Accessor<QueryClient>,\n): Accessor<number> {\n const client = createMemo(() => useQueryClient(queryClient?.()))\n const mutationCache = createMemo(() => client().getMutationCache())\n\n const [mutations, setMutations] = createSignal(\n client().isMutating(filters?.()),\n )\n\n const unsubscribe = mutationCache().subscribe((_result) => {\n setMutations(client().isMutating(filters?.()))\n })\n\n onCleanup(unsubscribe)\n\n return mutations\n}\n","import type {\n QueriesPlaceholderDataFunction,\n QueryClient,\n QueryFunction,\n QueryKey,\n DefaultError,\n} from '@tanstack/query-core'\nimport { notifyManager, QueriesObserver } from '@tanstack/query-core'\nimport type { Accessor } from 'solid-js'\nimport { createComputed, onCleanup, onMount } from 'solid-js'\nimport { createStore, unwrap } from 'solid-js/store'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { CreateQueryResult, SolidQueryOptions } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype CreateQueryOptionsForCreateQueries<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = Omit<\n SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? CreateQueryOptionsForCreateQueries<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? CreateQueryOptionsForCreateQueries<\n TQueryFnData,\n Error,\n TQueryFnData,\n TQueryKey\n >\n : // Fallback\n CreateQueryOptionsForCreateQueries\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? CreateQueryResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? CreateQueryResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? CreateQueryResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? CreateQueryResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? CreateQueryResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? CreateQueryResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? CreateQueryResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? CreateQueryResult<TQueryFnData>\n : // Fallback\n CreateQueryResult\n\n/**\n * QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type QueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? CreateQueryOptionsForCreateQueries[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? QueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends CreateQueryOptionsForCreateQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n CreateQueryOptionsForCreateQueries[]\n\n/**\n * QueriesResults reducer recursively maps type param to results\n */\nexport type QueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? CreateQueryResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? QueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends CreateQueryOptionsForCreateQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n CreateQueryResult<\n unknown extends TData ? TQueryFnData : TData,\n unknown extends TError ? DefaultError : TError\n >[]\n : // Fallback\n CreateQueryResult[]\n\nexport function createQueries<T extends any[]>(\n queriesOptions: Accessor<{\n queries: readonly [...QueriesOptions<T>]\n }>,\n queryClient?: Accessor<QueryClient>,\n): QueriesResults<T> {\n const client = useQueryClient(queryClient?.())\n\n const defaultedQueries = queriesOptions().queries.map((options) => {\n const defaultedOptions = client.defaultQueryOptions(options)\n defaultedOptions._optimisticResults = 'optimistic'\n return defaultedOptions\n })\n\n const observer = new QueriesObserver(client, defaultedQueries)\n\n const [state, setState] = createStore(\n observer.getOptimisticResult(defaultedQueries),\n )\n\n const unsubscribe = observer.subscribe((result) => {\n notifyManager.batchCalls(() => {\n setState(unwrap(result))\n })()\n })\n\n onCleanup(unsubscribe)\n\n onMount(() => {\n observer.setQueries(defaultedQueries, { listeners: false })\n })\n\n createComputed(() => {\n const updatedQueries = queriesOptions().queries.map((options) => {\n const defaultedOptions = client.defaultQueryOptions(options)\n defaultedOptions._optimisticResults = 'optimistic'\n return defaultedOptions\n })\n observer.setQueries(updatedQueries)\n })\n\n return state as QueriesResults<T>\n}\n"],"names":["notifyManager","setBatchNotifyFunction","batch","QueryClientContext","createContext","undefined","useQueryClient","queryClient","client","useContext","Error","QueryClientProvider","props","onMount","mount","onCleanup","unmount","_$createComponent","children","shouldThrowError","throwError","params","createBaseQuery","options","Observer","createMemo","defaultedOptions","defaultQueryOptions","_optimisticResults","isServer","retry","throwErrors","observer","state","setState","createStore","getOptimisticResult","createServerSubscriber","resolve","reject","subscribe","result","batchCalls","unwrappedResult","unwrap","isError","process","env","console","error","isSuccess","createClientSubscriber","queryResource","data","loading","mutate","refetch","unsubscribe","createResource","Promise","isLoading","initialValue","ssrLoadFrom","initialData","deferStream","onHydrated","_k","info","value","hydrate","queries","queryKey","queryHash","newOptions","staleTime","refetchOnMount","setOptions","listeners","createComputed","on","status","isFetching","getCurrentQuery","handler","get","target","prop","Reflect","Proxy","createQuery","QueryObserver","useIsFetching","filters","queryCache","getQueryCache","fetches","setFetches","createSignal","createInfiniteQuery","InfiniteQueryObserver","createMutation","MutationObserver","variables","mutateOptions","catch","noop","getCurrentResult","mutateAsync","useIsMutating","mutationCache","getMutationCache","mutations","setMutations","isMutating","_result","createQueries","queriesOptions","defaultedQueries","map","QueriesObserver","setQueries","updatedQueries"],"mappings":"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"}
@@ -1,285 +0,0 @@
1
- import { notifyManager, hydrate, QueryObserver, InfiniteQueryObserver, MutationObserver, QueriesObserver } from '@tanstack/query-core';
2
- export * from '@tanstack/query-core';
3
- import { batch, createContext, useContext, onMount, onCleanup, createMemo, createResource, createComputed, on, createSignal } from 'solid-js';
4
- import { createComponent, isServer } from 'solid-js/web';
5
- import { createStore, unwrap } from 'solid-js/store';
6
-
7
- notifyManager.setBatchNotifyFunction(batch);
8
-
9
- const QueryClientContext = createContext(undefined);
10
- const useQueryClient = queryClient => {
11
- const client = useContext(QueryClientContext);
12
- if (queryClient) {
13
- return queryClient;
14
- }
15
- if (!client) {
16
- throw new Error('No QueryClient set, use QueryClientProvider to set one');
17
- }
18
- return client;
19
- };
20
- const QueryClientProvider = props => {
21
- onMount(() => {
22
- props.client.mount();
23
- });
24
- onCleanup(() => props.client.unmount());
25
- return createComponent(QueryClientContext.Provider, {
26
- get value() {
27
- return props.client;
28
- },
29
- get children() {
30
- return props.children;
31
- }
32
- });
33
- };
34
-
35
- function shouldThrowError(throwError, params) {
36
- // Allow throwError function to override throwing behavior on a per-error basis
37
- if (typeof throwError === 'function') {
38
- return throwError(...params);
39
- }
40
- return !!throwError;
41
- }
42
-
43
- /* eslint-disable @typescript-eslint/no-unnecessary-condition */
44
-
45
- // Base Query Function that is used to create the query.
46
- function createBaseQuery(options, Observer, queryClient) {
47
- const client = createMemo(() => useQueryClient(queryClient?.()));
48
- const defaultedOptions = client().defaultQueryOptions(options());
49
- defaultedOptions._optimisticResults = 'optimistic';
50
- if (isServer) {
51
- defaultedOptions.retry = false;
52
- defaultedOptions.throwErrors = true;
53
- }
54
- const observer = new Observer(client(), defaultedOptions);
55
- const [state, setState] = createStore(observer.getOptimisticResult(defaultedOptions));
56
- const createServerSubscriber = (resolve, reject) => {
57
- return observer.subscribe(result => {
58
- notifyManager.batchCalls(() => {
59
- const unwrappedResult = {
60
- ...unwrap(result)
61
- };
62
- if (unwrappedResult.isError) {
63
- if (process.env['NODE_ENV'] === 'development') {
64
- console.error(unwrappedResult.error);
65
- }
66
- reject(unwrappedResult.error);
67
- }
68
- if (unwrappedResult.isSuccess) {
69
- resolve(unwrappedResult);
70
- }
71
- })();
72
- });
73
- };
74
- const createClientSubscriber = () => {
75
- return observer.subscribe(result => {
76
- notifyManager.batchCalls(() => {
77
- const unwrappedResult = {
78
- ...unwrap(result)
79
- };
80
- // If the query has data we dont suspend but instead mutate the resource
81
- // This could happen when placeholderData/initialData is defined
82
- if (queryResource()?.data && unwrappedResult.data && !queryResource.loading) {
83
- setState(unwrappedResult);
84
- mutate(state);
85
- } else {
86
- setState(unwrappedResult);
87
- refetch();
88
- }
89
- })();
90
- });
91
- };
92
-
93
- /**
94
- * Unsubscribe is set lazily, so that we can subscribe after hydration when needed.
95
- */
96
- let unsubscribe = null;
97
- const [queryResource, {
98
- refetch,
99
- mutate
100
- }] = createResource(() => {
101
- return new Promise((resolve, reject) => {
102
- if (isServer) {
103
- unsubscribe = createServerSubscriber(resolve, reject);
104
- } else {
105
- if (!unsubscribe) {
106
- unsubscribe = createClientSubscriber();
107
- }
108
- }
109
- if (!state.isLoading) {
110
- resolve(state);
111
- }
112
- });
113
- }, {
114
- initialValue: state,
115
- // If initialData is provided, we resolve the resource immediately
116
- ssrLoadFrom: options().initialData ? 'initial' : 'server',
117
- get deferStream() {
118
- return options().deferStream;
119
- },
120
- /**
121
- * If this resource was populated on the server (either sync render, or streamed in over time), onHydrated
122
- * will be called. This is the point at which we can hydrate the query cache state, and setup the query subscriber.
123
- *
124
- * Leveraging onHydrated allows us to plug into the async and streaming support that solidjs resources already support.
125
- *
126
- * Note that this is only invoked on the client, for queries that were originally run on the server.
127
- */
128
- onHydrated(_k, info) {
129
- if (info.value) {
130
- hydrate(client(), {
131
- queries: [{
132
- queryKey: defaultedOptions.queryKey,
133
- queryHash: defaultedOptions.queryHash,
134
- state: info.value
135
- }]
136
- });
137
- }
138
- if (!unsubscribe) {
139
- /**
140
- * Do not refetch query on mount if query was fetched on server,
141
- * even if `staleTime` is not set.
142
- */
143
- const newOptions = {
144
- ...defaultedOptions
145
- };
146
- if (defaultedOptions.staleTime || !defaultedOptions.initialData) {
147
- newOptions.refetchOnMount = false;
148
- }
149
- // Setting the options as an immutable object to prevent
150
- // wonky behavior with observer subscriptions
151
- observer.setOptions(newOptions);
152
- setState(observer.getOptimisticResult(newOptions));
153
- unsubscribe = createClientSubscriber();
154
- }
155
- }
156
- });
157
- onCleanup(() => {
158
- if (unsubscribe) {
159
- unsubscribe();
160
- unsubscribe = null;
161
- }
162
- });
163
- onMount(() => {
164
- observer.setOptions(defaultedOptions, {
165
- listeners: false
166
- });
167
- });
168
- createComputed(() => {
169
- observer.setOptions(client().defaultQueryOptions(options()));
170
- });
171
- createComputed(on(() => state.status, () => {
172
- if (state.isError && !state.isFetching && shouldThrowError(observer.options.throwErrors, [state.error, observer.getCurrentQuery()])) {
173
- throw state.error;
174
- }
175
- }));
176
- const handler = {
177
- get(target, prop) {
178
- if (prop === 'data') {
179
- return queryResource()?.data;
180
- }
181
- return Reflect.get(target, prop);
182
- }
183
- };
184
- return new Proxy(state, handler);
185
- }
186
-
187
- function createQuery(options, queryClient) {
188
- return createBaseQuery(createMemo(() => options()), QueryObserver, queryClient);
189
- }
190
-
191
- function useIsFetching(filters, queryClient) {
192
- const client = createMemo(() => useQueryClient(queryClient?.()));
193
- const queryCache = createMemo(() => client().getQueryCache());
194
- const [fetches, setFetches] = createSignal(client().isFetching(filters?.()));
195
- const unsubscribe = queryCache().subscribe(() => {
196
- setFetches(client().isFetching(filters?.()));
197
- });
198
- onCleanup(unsubscribe);
199
- return fetches;
200
- }
201
-
202
- function createInfiniteQuery(options, queryClient) {
203
- return createBaseQuery(createMemo(() => options()),
204
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
205
- InfiniteQueryObserver, queryClient);
206
- }
207
-
208
- // HOOK
209
- function createMutation(options, queryClient) {
210
- const client = useQueryClient(queryClient?.());
211
- const observer = new MutationObserver(client, options());
212
- const mutate = (variables, mutateOptions) => {
213
- observer.mutate(variables, mutateOptions).catch(noop);
214
- };
215
- const [state, setState] = createStore({
216
- ...observer.getCurrentResult(),
217
- mutate,
218
- mutateAsync: observer.getCurrentResult().mutate
219
- });
220
- createComputed(() => {
221
- observer.setOptions(options());
222
- });
223
- createComputed(on(() => state.status, () => {
224
- if (state.isError && shouldThrowError(observer.options.throwErrors, [state.error])) {
225
- throw state.error;
226
- }
227
- }));
228
- const unsubscribe = observer.subscribe(result => {
229
- setState({
230
- ...result,
231
- mutate,
232
- mutateAsync: result.mutate
233
- });
234
- });
235
- onCleanup(unsubscribe);
236
- return state;
237
- }
238
-
239
- // eslint-disable-next-line @typescript-eslint/no-empty-function
240
- function noop() {}
241
-
242
- function useIsMutating(filters, queryClient) {
243
- const client = createMemo(() => useQueryClient(queryClient?.()));
244
- const mutationCache = createMemo(() => client().getMutationCache());
245
- const [mutations, setMutations] = createSignal(client().isMutating(filters?.()));
246
- const unsubscribe = mutationCache().subscribe(_result => {
247
- setMutations(client().isMutating(filters?.()));
248
- });
249
- onCleanup(unsubscribe);
250
- return mutations;
251
- }
252
-
253
- function createQueries(queriesOptions, queryClient) {
254
- const client = useQueryClient(queryClient?.());
255
- const defaultedQueries = queriesOptions().queries.map(options => {
256
- const defaultedOptions = client.defaultQueryOptions(options);
257
- defaultedOptions._optimisticResults = 'optimistic';
258
- return defaultedOptions;
259
- });
260
- const observer = new QueriesObserver(client, defaultedQueries);
261
- const [state, setState] = createStore(observer.getOptimisticResult(defaultedQueries));
262
- const unsubscribe = observer.subscribe(result => {
263
- notifyManager.batchCalls(() => {
264
- setState(unwrap(result));
265
- })();
266
- });
267
- onCleanup(unsubscribe);
268
- onMount(() => {
269
- observer.setQueries(defaultedQueries, {
270
- listeners: false
271
- });
272
- });
273
- createComputed(() => {
274
- const updatedQueries = queriesOptions().queries.map(options => {
275
- const defaultedOptions = client.defaultQueryOptions(options);
276
- defaultedOptions._optimisticResults = 'optimistic';
277
- return defaultedOptions;
278
- });
279
- observer.setQueries(updatedQueries);
280
- });
281
- return state;
282
- }
283
-
284
- export { QueryClientContext, QueryClientProvider, createInfiniteQuery, createMutation, createQueries, createQuery, useIsFetching, useIsMutating, useQueryClient };
285
- //# sourceMappingURL=index.js.map