@tanstack/solid-query 6.0.0-beta.3 → 6.0.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/dev.cjs CHANGED
@@ -93,10 +93,10 @@ var hydratableObserverResult = (query, result) => {
93
93
  return obj;
94
94
  };
95
95
  function useBaseQuery(options, Observer, queryClient) {
96
- const client = solidJs.createMemo(() => exports.useQueryClient(queryClient?.()));
96
+ const [client] = solidJs.createSignal(() => exports.useQueryClient(queryClient?.()));
97
97
  const isRestoring = exports.useIsRestoring();
98
98
  let unsubscribeQueued = false;
99
- const defaultedOptions = solidJs.createMemo(() => {
99
+ const [defaultedOptions] = solidJs.createSignal(() => {
100
100
  const defaultOptions = client().defaultQueryOptions(options());
101
101
  defaultOptions._optimisticResults = isRestoring() ? "isRestoring" : "optimistic";
102
102
  defaultOptions.structuralSharing = false;
@@ -108,11 +108,11 @@ function useBaseQuery(options, Observer, queryClient) {
108
108
  return defaultOptions;
109
109
  });
110
110
  const observer = solidJs.untrack(() => new Observer(client(), defaultedOptions()));
111
- const trackedDefaultedOptions = solidJs.createMemo(() => defaultedOptions());
111
+ const [trackedDefaultedOptions] = solidJs.createSignal(() => defaultedOptions());
112
112
  solidJs.createRenderEffect(
113
113
  () => trackedDefaultedOptions(),
114
114
  (opts) => {
115
- observer.setOptions(opts);
115
+ solidJs.runWithOwner(null, () => observer.setOptions(opts));
116
116
  }
117
117
  );
118
118
  let observerResult = solidJs.untrack(
@@ -146,8 +146,8 @@ function useBaseQuery(options, Observer, queryClient) {
146
146
  return observer.subscribe((result) => {
147
147
  const previousResult = observerResult;
148
148
  observerResult = result;
149
- setStateWithReconciliation(result);
150
- queueMicrotask(() => {
149
+ solidJs.runWithOwner(null, () => {
150
+ setStateWithReconciliation(result);
151
151
  if (unsubscribe && !disposed && (previousResult.isLoading !== result.isLoading || previousResult.isError !== result.isError)) {
152
152
  try {
153
153
  solidJs.refresh(queryResource);
@@ -173,41 +173,58 @@ function useBaseQuery(options, Observer, queryClient) {
173
173
  let unsubscribe = null;
174
174
  let disposed = false;
175
175
  let resolver = null;
176
- const queryResource = solidJs.createMemo(
177
- () => {
178
- const opts = trackedDefaultedOptions();
179
- const restoring = isRestoring();
180
- return new Promise((resolve, reject) => {
181
- resolver = resolve;
182
- if (isServer) {
183
- unsubscribe = createServerSubscriber((data) => {
184
- resolve(data);
185
- }, reject);
186
- } else if (!unsubscribe && !restoring) {
187
- unsubscribe = createClientSubscriber();
188
- }
189
- const currentResult = observer.getOptimisticResult(opts);
190
- observerResult = currentResult;
176
+ const [queryResource] = solidJs.createSignal(() => {
177
+ const opts = trackedDefaultedOptions();
178
+ const restoring = isRestoring();
179
+ if (isServer) {
180
+ const cached = observer.getOptimisticResult(opts);
181
+ if (!cached.isLoading) {
182
+ observerResult = cached;
183
+ solidJs.runWithOwner(null, () => {
184
+ setStateWithReconciliation(cached);
185
+ });
186
+ return hydratableObserverResult(
187
+ observer.getCurrentQuery(),
188
+ cached
189
+ );
190
+ }
191
+ }
192
+ return new Promise((resolve, reject) => {
193
+ resolver = resolve;
194
+ if (isServer) {
195
+ unsubscribe = createServerSubscriber((data) => {
196
+ resolve(data);
197
+ }, reject);
198
+ } else if (!unsubscribe && !restoring) {
199
+ unsubscribe = createClientSubscriber();
200
+ }
201
+ const currentResult = observer.getOptimisticResult(opts);
202
+ observerResult = currentResult;
203
+ solidJs.runWithOwner(null, () => {
191
204
  if (currentResult.isError && !currentResult.isFetching && !restoring && queryCore.shouldThrowError(opts.throwOnError, [
192
205
  currentResult.error,
193
206
  observer.getCurrentQuery()
194
207
  ])) {
195
208
  setStateWithReconciliation(currentResult);
196
- return reject(currentResult.error);
197
- }
198
- if (!currentResult.isLoading) {
199
- resolver = null;
200
- setStateWithReconciliation(currentResult);
201
- return resolve(
202
- hydratableObserverResult(observer.getCurrentQuery(), currentResult)
203
- );
209
+ reject(currentResult.error);
210
+ return;
204
211
  }
205
- queueMicrotask(() => setStateWithReconciliation(currentResult));
212
+ setStateWithReconciliation(currentResult);
206
213
  });
207
- },
208
- observerResult,
209
- { ssrSource: "client" }
210
- );
214
+ if (currentResult.isError && !currentResult.isFetching && !restoring && queryCore.shouldThrowError(opts.throwOnError, [
215
+ currentResult.error,
216
+ observer.getCurrentQuery()
217
+ ])) {
218
+ return;
219
+ }
220
+ if (!currentResult.isLoading) {
221
+ resolver = null;
222
+ return resolve(
223
+ hydratableObserverResult(observer.getCurrentQuery(), currentResult)
224
+ );
225
+ }
226
+ });
227
+ });
211
228
  solidJs.onCleanup(() => {
212
229
  disposed = true;
213
230
  if (isServer && solidJs.isPending(queryResource)) {
@@ -236,6 +253,12 @@ function useBaseQuery(options, Observer, queryClient) {
236
253
  if (typeof prop === "symbol") {
237
254
  return Reflect.get(target, prop, receiver);
238
255
  }
256
+ if (isServer) {
257
+ const resolved = queryResource();
258
+ if (prop in resolved) {
259
+ return Reflect.get(resolved, prop);
260
+ }
261
+ }
239
262
  if (errorPassthroughProps.has(prop)) {
240
263
  return Reflect.get(target, prop, receiver);
241
264
  }
@@ -289,11 +312,13 @@ function useMutation(options, queryClient) {
289
312
  mutateAsync: initialResult.mutate
290
313
  });
291
314
  const unsubscribe = observer.subscribe((result) => {
292
- setState(() => ({
293
- ...result,
294
- mutate,
295
- mutateAsync: result.mutate
296
- }));
315
+ solidJs.runWithOwner(null, () => {
316
+ setState(() => ({
317
+ ...result,
318
+ mutate,
319
+ mutateAsync: result.mutate
320
+ }));
321
+ });
297
322
  });
298
323
  solidJs.onCleanup(unsubscribe);
299
324
  solidJs.createRenderEffect(
@@ -345,14 +370,16 @@ function useQueries(queriesOptions, queryClient) {
345
370
  () => {
346
371
  if (!isRestoring()) {
347
372
  unsubscribe = observer.subscribe((result) => {
348
- setState(
349
- solidJs.reconcile(
350
- [...result],
351
- // Use a key function that returns undefined so reconcile
352
- // uses positional matching and recursively updates nested properties
353
- () => void 0
354
- )
355
- );
373
+ solidJs.runWithOwner(null, () => {
374
+ setState(
375
+ solidJs.reconcile(
376
+ [...result],
377
+ // Use a key function that returns undefined so reconcile
378
+ // uses positional matching and recursively updates nested properties
379
+ () => void 0
380
+ )
381
+ );
382
+ });
356
383
  });
357
384
  }
358
385
  },
@@ -364,12 +391,14 @@ function useQueries(queriesOptions, queryClient) {
364
391
  });
365
392
  solidJs.createMemo(() => {
366
393
  const queries = defaultedQueries();
367
- observer.setQueries(
368
- queries,
369
- queriesOptions().combine ? {
370
- combine: queriesOptions().combine
371
- } : void 0
372
- );
394
+ solidJs.runWithOwner(null, () => {
395
+ observer.setQueries(
396
+ queries,
397
+ queriesOptions().combine ? {
398
+ combine: queriesOptions().combine
399
+ } : void 0
400
+ );
401
+ });
373
402
  return queries;
374
403
  });
375
404
  return state;
@@ -389,7 +418,7 @@ function useIsFetching(filters, queryClient) {
389
418
  const queryCache = solidJs.createMemo(() => client().getQueryCache());
390
419
  const [fetches, setFetches] = solidJs.createSignal(
391
420
  solidJs.untrack(() => client().isFetching(filters?.())),
392
- { pureWrite: true }
421
+ { ownedWrite: true }
393
422
  );
394
423
  const unsubscribe = solidJs.untrack(
395
424
  () => queryCache().subscribe(() => {
@@ -414,7 +443,7 @@ function useIsMutating(filters, queryClient) {
414
443
  const mutationCache = solidJs.createMemo(() => client().getMutationCache());
415
444
  const [mutations, setMutations] = solidJs.createSignal(
416
445
  solidJs.untrack(() => client().isMutating(filters?.())),
417
- { pureWrite: true }
446
+ { ownedWrite: true }
418
447
  );
419
448
  const unsubscribe = solidJs.untrack(
420
449
  () => mutationCache().subscribe((_result) => {
@@ -434,7 +463,7 @@ function useMutationState(options = () => ({}), queryClient) {
434
463
  const mutationCache = solidJs.createMemo(() => client().getMutationCache());
435
464
  const [result, setResult] = solidJs.createSignal(
436
465
  solidJs.untrack(() => getResult(mutationCache(), options())),
437
- { pureWrite: true }
466
+ { ownedWrite: true }
438
467
  );
439
468
  const unsubscribe = solidJs.untrack(
440
469
  () => mutationCache().subscribe(() => {
package/build/dev.d.cts CHANGED
@@ -1,9 +1,9 @@
1
1
  export { DefinedUseBaseQueryResult } from './_tsup-dts-rollup.cjs';
2
2
  export { DefinedUseInfiniteQueryResult } from './_tsup-dts-rollup.cjs';
3
3
  export { DefinedUseQueryResult } from './_tsup-dts-rollup.cjs';
4
- export { SolidInfiniteQueryOptions } from './_tsup-dts-rollup.cjs';
5
- export { SolidMutationOptions } from './_tsup-dts-rollup.cjs';
6
- export { SolidQueryOptions } from './_tsup-dts-rollup.cjs';
4
+ export { InfiniteQueryOptions } from './_tsup-dts-rollup.cjs';
5
+ export { MutationOptions } from './_tsup-dts-rollup.cjs';
6
+ export { QueryOptions } from './_tsup-dts-rollup.cjs';
7
7
  export { UseBaseMutationResult } from './_tsup-dts-rollup.cjs';
8
8
  export { UseBaseQueryOptions } from './_tsup-dts-rollup.cjs';
9
9
  export { UseBaseQueryResult } from './_tsup-dts-rollup.cjs';
@@ -111,7 +111,6 @@ export { NonUndefinedGuard } from './_tsup-dts-rollup.cjs';
111
111
  export { DistributiveOmit } from './_tsup-dts-rollup.cjs';
112
112
  export { OmitKeyof } from './_tsup-dts-rollup.cjs';
113
113
  export { Override } from './_tsup-dts-rollup.cjs';
114
- export { NoInfer } from './_tsup-dts-rollup.cjs';
115
114
  export { Register } from './_tsup-dts-rollup.cjs';
116
115
  export { DefaultError } from './_tsup-dts-rollup.cjs';
117
116
  export { QueryKey } from './_tsup-dts-rollup.cjs';
@@ -126,7 +125,7 @@ export { InferErrorFromTag } from './_tsup-dts-rollup.cjs';
126
125
  export { QueryFunction } from './_tsup-dts-rollup.cjs';
127
126
  export { StaleTime } from './_tsup-dts-rollup.cjs';
128
127
  export { StaleTimeFunction } from './_tsup-dts-rollup.cjs';
129
- export { Enabled } from './_tsup-dts-rollup.cjs';
128
+ export { QueryBooleanOption } from './_tsup-dts-rollup.cjs';
130
129
  export { QueryPersister } from './_tsup-dts-rollup.cjs';
131
130
  export { QueryFunctionContext } from './_tsup-dts-rollup.cjs';
132
131
  export { InitialDataFunction } from './_tsup-dts-rollup.cjs';
@@ -139,7 +138,6 @@ export { InfiniteData } from './_tsup-dts-rollup.cjs';
139
138
  export { QueryMeta } from './_tsup-dts-rollup.cjs';
140
139
  export { NetworkMode } from './_tsup-dts-rollup.cjs';
141
140
  export { NotifyOnChangeProps } from './_tsup-dts-rollup.cjs';
142
- export { QueryOptions } from './_tsup-dts-rollup.cjs';
143
141
  export { InitialPageParam } from './_tsup-dts-rollup.cjs';
144
142
  export { InfiniteQueryPageParamsOptions } from './_tsup-dts-rollup.cjs';
145
143
  export { ThrowOnError } from './_tsup-dts-rollup.cjs';
@@ -184,7 +182,6 @@ export { MutationScope } from './_tsup-dts-rollup.cjs';
184
182
  export { MutationMeta } from './_tsup-dts-rollup.cjs';
185
183
  export { MutationFunctionContext } from './_tsup-dts-rollup.cjs';
186
184
  export { MutationFunction } from './_tsup-dts-rollup.cjs';
187
- export { MutationOptions } from './_tsup-dts-rollup.cjs';
188
185
  export { MutationObserverOptions } from './_tsup-dts-rollup.cjs';
189
186
  export { MutateOptions } from './_tsup-dts-rollup.cjs';
190
187
  export { MutateFunction } from './_tsup-dts-rollup.cjs';
package/build/dev.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  export { DefinedUseBaseQueryResult } from './_tsup-dts-rollup.js';
2
2
  export { DefinedUseInfiniteQueryResult } from './_tsup-dts-rollup.js';
3
3
  export { DefinedUseQueryResult } from './_tsup-dts-rollup.js';
4
- export { SolidInfiniteQueryOptions } from './_tsup-dts-rollup.js';
5
- export { SolidMutationOptions } from './_tsup-dts-rollup.js';
6
- export { SolidQueryOptions } from './_tsup-dts-rollup.js';
4
+ export { InfiniteQueryOptions } from './_tsup-dts-rollup.js';
5
+ export { MutationOptions } from './_tsup-dts-rollup.js';
6
+ export { QueryOptions } from './_tsup-dts-rollup.js';
7
7
  export { UseBaseMutationResult } from './_tsup-dts-rollup.js';
8
8
  export { UseBaseQueryOptions } from './_tsup-dts-rollup.js';
9
9
  export { UseBaseQueryResult } from './_tsup-dts-rollup.js';
@@ -111,7 +111,6 @@ export { NonUndefinedGuard } from './_tsup-dts-rollup.js';
111
111
  export { DistributiveOmit } from './_tsup-dts-rollup.js';
112
112
  export { OmitKeyof } from './_tsup-dts-rollup.js';
113
113
  export { Override } from './_tsup-dts-rollup.js';
114
- export { NoInfer } from './_tsup-dts-rollup.js';
115
114
  export { Register } from './_tsup-dts-rollup.js';
116
115
  export { DefaultError } from './_tsup-dts-rollup.js';
117
116
  export { QueryKey } from './_tsup-dts-rollup.js';
@@ -126,7 +125,7 @@ export { InferErrorFromTag } from './_tsup-dts-rollup.js';
126
125
  export { QueryFunction } from './_tsup-dts-rollup.js';
127
126
  export { StaleTime } from './_tsup-dts-rollup.js';
128
127
  export { StaleTimeFunction } from './_tsup-dts-rollup.js';
129
- export { Enabled } from './_tsup-dts-rollup.js';
128
+ export { QueryBooleanOption } from './_tsup-dts-rollup.js';
130
129
  export { QueryPersister } from './_tsup-dts-rollup.js';
131
130
  export { QueryFunctionContext } from './_tsup-dts-rollup.js';
132
131
  export { InitialDataFunction } from './_tsup-dts-rollup.js';
@@ -139,7 +138,6 @@ export { InfiniteData } from './_tsup-dts-rollup.js';
139
138
  export { QueryMeta } from './_tsup-dts-rollup.js';
140
139
  export { NetworkMode } from './_tsup-dts-rollup.js';
141
140
  export { NotifyOnChangeProps } from './_tsup-dts-rollup.js';
142
- export { QueryOptions } from './_tsup-dts-rollup.js';
143
141
  export { InitialPageParam } from './_tsup-dts-rollup.js';
144
142
  export { InfiniteQueryPageParamsOptions } from './_tsup-dts-rollup.js';
145
143
  export { ThrowOnError } from './_tsup-dts-rollup.js';
@@ -184,7 +182,6 @@ export { MutationScope } from './_tsup-dts-rollup.js';
184
182
  export { MutationMeta } from './_tsup-dts-rollup.js';
185
183
  export { MutationFunctionContext } from './_tsup-dts-rollup.js';
186
184
  export { MutationFunction } from './_tsup-dts-rollup.js';
187
- export { MutationOptions } from './_tsup-dts-rollup.js';
188
185
  export { MutationObserverOptions } from './_tsup-dts-rollup.js';
189
186
  export { MutateOptions } from './_tsup-dts-rollup.js';
190
187
  export { MutateFunction } from './_tsup-dts-rollup.js';
package/build/dev.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { MutationObserver, shouldThrowError, QueriesObserver, QueryClient as QueryClient$1, replaceEqualDeep, noop, notifyManager, QueryObserver, InfiniteQueryObserver } from '@tanstack/query-core';
2
2
  export * from '@tanstack/query-core';
3
- import { createContext, useContext, onCleanup, createMemo, untrack, createRenderEffect, createStore, merge, createEffect, reconcile, createSignal, isPending, refresh, snapshot } from 'solid-js';
3
+ import { createContext, useContext, onCleanup, createMemo, untrack, createRenderEffect, createStore, runWithOwner, merge, createEffect, reconcile, createSignal, isPending, refresh, snapshot } from 'solid-js';
4
4
  import { createComponent } from '@solidjs/web';
5
5
 
6
6
  // src/useQuery.ts
@@ -92,10 +92,10 @@ var hydratableObserverResult = (query, result) => {
92
92
  return obj;
93
93
  };
94
94
  function useBaseQuery(options, Observer, queryClient) {
95
- const client = createMemo(() => useQueryClient(queryClient?.()));
95
+ const [client] = createSignal(() => useQueryClient(queryClient?.()));
96
96
  const isRestoring = useIsRestoring();
97
97
  let unsubscribeQueued = false;
98
- const defaultedOptions = createMemo(() => {
98
+ const [defaultedOptions] = createSignal(() => {
99
99
  const defaultOptions = client().defaultQueryOptions(options());
100
100
  defaultOptions._optimisticResults = isRestoring() ? "isRestoring" : "optimistic";
101
101
  defaultOptions.structuralSharing = false;
@@ -107,11 +107,11 @@ function useBaseQuery(options, Observer, queryClient) {
107
107
  return defaultOptions;
108
108
  });
109
109
  const observer = untrack(() => new Observer(client(), defaultedOptions()));
110
- const trackedDefaultedOptions = createMemo(() => defaultedOptions());
110
+ const [trackedDefaultedOptions] = createSignal(() => defaultedOptions());
111
111
  createRenderEffect(
112
112
  () => trackedDefaultedOptions(),
113
113
  (opts) => {
114
- observer.setOptions(opts);
114
+ runWithOwner(null, () => observer.setOptions(opts));
115
115
  }
116
116
  );
117
117
  let observerResult = untrack(
@@ -145,8 +145,8 @@ function useBaseQuery(options, Observer, queryClient) {
145
145
  return observer.subscribe((result) => {
146
146
  const previousResult = observerResult;
147
147
  observerResult = result;
148
- setStateWithReconciliation(result);
149
- queueMicrotask(() => {
148
+ runWithOwner(null, () => {
149
+ setStateWithReconciliation(result);
150
150
  if (unsubscribe && !disposed && (previousResult.isLoading !== result.isLoading || previousResult.isError !== result.isError)) {
151
151
  try {
152
152
  refresh(queryResource);
@@ -172,41 +172,58 @@ function useBaseQuery(options, Observer, queryClient) {
172
172
  let unsubscribe = null;
173
173
  let disposed = false;
174
174
  let resolver = null;
175
- const queryResource = createMemo(
176
- () => {
177
- const opts = trackedDefaultedOptions();
178
- const restoring = isRestoring();
179
- return new Promise((resolve, reject) => {
180
- resolver = resolve;
181
- if (isServer) {
182
- unsubscribe = createServerSubscriber((data) => {
183
- resolve(data);
184
- }, reject);
185
- } else if (!unsubscribe && !restoring) {
186
- unsubscribe = createClientSubscriber();
187
- }
188
- const currentResult = observer.getOptimisticResult(opts);
189
- observerResult = currentResult;
175
+ const [queryResource] = createSignal(() => {
176
+ const opts = trackedDefaultedOptions();
177
+ const restoring = isRestoring();
178
+ if (isServer) {
179
+ const cached = observer.getOptimisticResult(opts);
180
+ if (!cached.isLoading) {
181
+ observerResult = cached;
182
+ runWithOwner(null, () => {
183
+ setStateWithReconciliation(cached);
184
+ });
185
+ return hydratableObserverResult(
186
+ observer.getCurrentQuery(),
187
+ cached
188
+ );
189
+ }
190
+ }
191
+ return new Promise((resolve, reject) => {
192
+ resolver = resolve;
193
+ if (isServer) {
194
+ unsubscribe = createServerSubscriber((data) => {
195
+ resolve(data);
196
+ }, reject);
197
+ } else if (!unsubscribe && !restoring) {
198
+ unsubscribe = createClientSubscriber();
199
+ }
200
+ const currentResult = observer.getOptimisticResult(opts);
201
+ observerResult = currentResult;
202
+ runWithOwner(null, () => {
190
203
  if (currentResult.isError && !currentResult.isFetching && !restoring && shouldThrowError(opts.throwOnError, [
191
204
  currentResult.error,
192
205
  observer.getCurrentQuery()
193
206
  ])) {
194
207
  setStateWithReconciliation(currentResult);
195
- return reject(currentResult.error);
196
- }
197
- if (!currentResult.isLoading) {
198
- resolver = null;
199
- setStateWithReconciliation(currentResult);
200
- return resolve(
201
- hydratableObserverResult(observer.getCurrentQuery(), currentResult)
202
- );
208
+ reject(currentResult.error);
209
+ return;
203
210
  }
204
- queueMicrotask(() => setStateWithReconciliation(currentResult));
211
+ setStateWithReconciliation(currentResult);
205
212
  });
206
- },
207
- observerResult,
208
- { ssrSource: "client" }
209
- );
213
+ if (currentResult.isError && !currentResult.isFetching && !restoring && shouldThrowError(opts.throwOnError, [
214
+ currentResult.error,
215
+ observer.getCurrentQuery()
216
+ ])) {
217
+ return;
218
+ }
219
+ if (!currentResult.isLoading) {
220
+ resolver = null;
221
+ return resolve(
222
+ hydratableObserverResult(observer.getCurrentQuery(), currentResult)
223
+ );
224
+ }
225
+ });
226
+ });
210
227
  onCleanup(() => {
211
228
  disposed = true;
212
229
  if (isServer && isPending(queryResource)) {
@@ -235,6 +252,12 @@ function useBaseQuery(options, Observer, queryClient) {
235
252
  if (typeof prop === "symbol") {
236
253
  return Reflect.get(target, prop, receiver);
237
254
  }
255
+ if (isServer) {
256
+ const resolved = queryResource();
257
+ if (prop in resolved) {
258
+ return Reflect.get(resolved, prop);
259
+ }
260
+ }
238
261
  if (errorPassthroughProps.has(prop)) {
239
262
  return Reflect.get(target, prop, receiver);
240
263
  }
@@ -288,11 +311,13 @@ function useMutation(options, queryClient) {
288
311
  mutateAsync: initialResult.mutate
289
312
  });
290
313
  const unsubscribe = observer.subscribe((result) => {
291
- setState(() => ({
292
- ...result,
293
- mutate,
294
- mutateAsync: result.mutate
295
- }));
314
+ runWithOwner(null, () => {
315
+ setState(() => ({
316
+ ...result,
317
+ mutate,
318
+ mutateAsync: result.mutate
319
+ }));
320
+ });
296
321
  });
297
322
  onCleanup(unsubscribe);
298
323
  createRenderEffect(
@@ -344,14 +369,16 @@ function useQueries(queriesOptions, queryClient) {
344
369
  () => {
345
370
  if (!isRestoring()) {
346
371
  unsubscribe = observer.subscribe((result) => {
347
- setState(
348
- reconcile(
349
- [...result],
350
- // Use a key function that returns undefined so reconcile
351
- // uses positional matching and recursively updates nested properties
352
- () => void 0
353
- )
354
- );
372
+ runWithOwner(null, () => {
373
+ setState(
374
+ reconcile(
375
+ [...result],
376
+ // Use a key function that returns undefined so reconcile
377
+ // uses positional matching and recursively updates nested properties
378
+ () => void 0
379
+ )
380
+ );
381
+ });
355
382
  });
356
383
  }
357
384
  },
@@ -363,12 +390,14 @@ function useQueries(queriesOptions, queryClient) {
363
390
  });
364
391
  createMemo(() => {
365
392
  const queries = defaultedQueries();
366
- observer.setQueries(
367
- queries,
368
- queriesOptions().combine ? {
369
- combine: queriesOptions().combine
370
- } : void 0
371
- );
393
+ runWithOwner(null, () => {
394
+ observer.setQueries(
395
+ queries,
396
+ queriesOptions().combine ? {
397
+ combine: queriesOptions().combine
398
+ } : void 0
399
+ );
400
+ });
372
401
  return queries;
373
402
  });
374
403
  return state;
@@ -388,7 +417,7 @@ function useIsFetching(filters, queryClient) {
388
417
  const queryCache = createMemo(() => client().getQueryCache());
389
418
  const [fetches, setFetches] = createSignal(
390
419
  untrack(() => client().isFetching(filters?.())),
391
- { pureWrite: true }
420
+ { ownedWrite: true }
392
421
  );
393
422
  const unsubscribe = untrack(
394
423
  () => queryCache().subscribe(() => {
@@ -413,7 +442,7 @@ function useIsMutating(filters, queryClient) {
413
442
  const mutationCache = createMemo(() => client().getMutationCache());
414
443
  const [mutations, setMutations] = createSignal(
415
444
  untrack(() => client().isMutating(filters?.())),
416
- { pureWrite: true }
445
+ { ownedWrite: true }
417
446
  );
418
447
  const unsubscribe = untrack(
419
448
  () => mutationCache().subscribe((_result) => {
@@ -433,7 +462,7 @@ function useMutationState(options = () => ({}), queryClient) {
433
462
  const mutationCache = createMemo(() => client().getMutationCache());
434
463
  const [result, setResult] = createSignal(
435
464
  untrack(() => getResult(mutationCache(), options())),
436
- { pureWrite: true }
465
+ { ownedWrite: true }
437
466
  );
438
467
  const unsubscribe = untrack(
439
468
  () => mutationCache().subscribe(() => {