@tanstack/solid-query 5.2.0 → 5.2.1

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
@@ -328,6 +328,33 @@ function useIsMutating(filters, queryClient) {
328
328
  solidJs.onCleanup(unsubscribe);
329
329
  return mutations;
330
330
  }
331
+ function getResult(mutationCache, options) {
332
+ return mutationCache.findAll(options.filters).map(
333
+ (mutation) => options.select ? options.select(
334
+ mutation
335
+ ) : mutation.state
336
+ );
337
+ }
338
+ function useMutationState(options = () => ({}), queryClient) {
339
+ const client = solidJs.createMemo(() => exports.useQueryClient(queryClient?.()));
340
+ const mutationCache = solidJs.createMemo(() => client().getMutationCache());
341
+ const [result, setResult] = solidJs.createSignal(
342
+ getResult(mutationCache(), options())
343
+ );
344
+ solidJs.createEffect(() => {
345
+ const unsubscribe = mutationCache().subscribe(() => {
346
+ const nextResult = queryCore.replaceEqualDeep(
347
+ result(),
348
+ getResult(mutationCache(), options())
349
+ );
350
+ if (result() !== nextResult) {
351
+ setResult(nextResult);
352
+ }
353
+ });
354
+ solidJs.onCleanup(unsubscribe);
355
+ });
356
+ return result;
357
+ }
331
358
  function createQueries(queriesOptions, queryClient) {
332
359
  const client = solidJs.createMemo(() => exports.useQueryClient(queryClient?.()));
333
360
  const isRestoring = exports.useIsRestoring();
@@ -446,6 +473,7 @@ exports.createQuery = createQuery;
446
473
  exports.queryOptions = queryOptions;
447
474
  exports.useIsFetching = useIsFetching;
448
475
  exports.useIsMutating = useIsMutating;
476
+ exports.useMutationState = useMutationState;
449
477
  Object.keys(queryCore).forEach(function (k) {
450
478
  if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
451
479
  enumerable: true,
package/build/dev.js CHANGED
@@ -1,6 +1,6 @@
1
- import { notifyManager, QueryClient as QueryClient$1, MutationObserver, QueriesObserver, hydrate, QueryObserver, InfiniteQueryObserver } from '@tanstack/query-core';
1
+ import { notifyManager, QueryClient as QueryClient$1, MutationObserver, replaceEqualDeep, QueriesObserver, hydrate, QueryObserver, InfiniteQueryObserver } from '@tanstack/query-core';
2
2
  export * from '@tanstack/query-core';
3
- import { batch, createContext, useContext, createRenderEffect, onCleanup, createMemo, createSignal, createComputed, on, mergeProps, createResource, onMount, untrack } from 'solid-js';
3
+ import { batch, createContext, useContext, createRenderEffect, onCleanup, createMemo, createSignal, createComputed, on, createEffect, mergeProps, createResource, onMount, untrack } from 'solid-js';
4
4
  import { createComponent, isServer } from 'solid-js/web';
5
5
  import { createStore, unwrap, reconcile } from 'solid-js/store';
6
6
 
@@ -327,6 +327,33 @@ function useIsMutating(filters, queryClient) {
327
327
  onCleanup(unsubscribe);
328
328
  return mutations;
329
329
  }
330
+ function getResult(mutationCache, options) {
331
+ return mutationCache.findAll(options.filters).map(
332
+ (mutation) => options.select ? options.select(
333
+ mutation
334
+ ) : mutation.state
335
+ );
336
+ }
337
+ function useMutationState(options = () => ({}), queryClient) {
338
+ const client = createMemo(() => useQueryClient(queryClient?.()));
339
+ const mutationCache = createMemo(() => client().getMutationCache());
340
+ const [result, setResult] = createSignal(
341
+ getResult(mutationCache(), options())
342
+ );
343
+ createEffect(() => {
344
+ const unsubscribe = mutationCache().subscribe(() => {
345
+ const nextResult = replaceEqualDeep(
346
+ result(),
347
+ getResult(mutationCache(), options())
348
+ );
349
+ if (result() !== nextResult) {
350
+ setResult(nextResult);
351
+ }
352
+ });
353
+ onCleanup(unsubscribe);
354
+ });
355
+ return result;
356
+ }
330
357
  function createQueries(queriesOptions, queryClient) {
331
358
  const client = createMemo(() => useQueryClient(queryClient?.()));
332
359
  const isRestoring = useIsRestoring();
@@ -438,4 +465,4 @@ function createQueries(queriesOptions, queryClient) {
438
465
  return proxifiedState;
439
466
  }
440
467
 
441
- export { IsRestoringProvider, QueryClient, QueryClientContext, QueryClientProvider, createInfiniteQuery, createMutation, createQueries, createQuery, queryOptions, useIsFetching, useIsMutating, useIsRestoring, useQueryClient };
468
+ export { IsRestoringProvider, QueryClient, QueryClientContext, QueryClientProvider, createInfiniteQuery, createMutation, createQueries, createQuery, queryOptions, useIsFetching, useIsMutating, useIsRestoring, useMutationState, useQueryClient };
package/build/index.cjs CHANGED
@@ -328,6 +328,33 @@ function useIsMutating(filters, queryClient) {
328
328
  solidJs.onCleanup(unsubscribe);
329
329
  return mutations;
330
330
  }
331
+ function getResult(mutationCache, options) {
332
+ return mutationCache.findAll(options.filters).map(
333
+ (mutation) => options.select ? options.select(
334
+ mutation
335
+ ) : mutation.state
336
+ );
337
+ }
338
+ function useMutationState(options = () => ({}), queryClient) {
339
+ const client = solidJs.createMemo(() => exports.useQueryClient(queryClient?.()));
340
+ const mutationCache = solidJs.createMemo(() => client().getMutationCache());
341
+ const [result, setResult] = solidJs.createSignal(
342
+ getResult(mutationCache(), options())
343
+ );
344
+ solidJs.createEffect(() => {
345
+ const unsubscribe = mutationCache().subscribe(() => {
346
+ const nextResult = queryCore.replaceEqualDeep(
347
+ result(),
348
+ getResult(mutationCache(), options())
349
+ );
350
+ if (result() !== nextResult) {
351
+ setResult(nextResult);
352
+ }
353
+ });
354
+ solidJs.onCleanup(unsubscribe);
355
+ });
356
+ return result;
357
+ }
331
358
  function createQueries(queriesOptions, queryClient) {
332
359
  const client = solidJs.createMemo(() => exports.useQueryClient(queryClient?.()));
333
360
  const isRestoring = exports.useIsRestoring();
@@ -446,6 +473,7 @@ exports.createQuery = createQuery;
446
473
  exports.queryOptions = queryOptions;
447
474
  exports.useIsFetching = useIsFetching;
448
475
  exports.useIsMutating = useIsMutating;
476
+ exports.useMutationState = useMutationState;
449
477
  Object.keys(queryCore).forEach(function (k) {
450
478
  if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
451
479
  enumerable: true,
package/build/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { DefaultError, QueryKey, QueryObserverOptions as QueryObserverOptions$1, InfiniteQueryObserverOptions as InfiniteQueryObserverOptions$1, DefaultOptions as DefaultOptions$1, QueryClientConfig as QueryClientConfig$1, QueryClient as QueryClient$1, WithRequired, QueryObserverResult, DefinedQueryObserverResult, InfiniteQueryObserverResult, MutationObserverOptions, MutateFunction, MutationObserverResult, QueryFilters, InfiniteData, MutationFilters, QueriesPlaceholderDataFunction, QueryFunction, ThrowOnError } from '@tanstack/query-core';
1
+ import { DefaultError, QueryKey, QueryObserverOptions as QueryObserverOptions$1, InfiniteQueryObserverOptions as InfiniteQueryObserverOptions$1, DefaultOptions as DefaultOptions$1, QueryClientConfig as QueryClientConfig$1, QueryClient as QueryClient$1, WithRequired, QueryObserverResult, DefinedQueryObserverResult, InfiniteQueryObserverResult, MutationObserverOptions, MutateFunction, MutationObserverResult, QueryFilters, InfiniteData, MutationFilters, MutationState, Mutation, QueriesPlaceholderDataFunction, QueryFunction, ThrowOnError } from '@tanstack/query-core';
2
2
  export * from '@tanstack/query-core';
3
3
  import * as solid_js from 'solid-js';
4
4
  import { JSX, Accessor } from 'solid-js';
@@ -90,6 +90,12 @@ declare function createMutation<TData = unknown, TError = DefaultError, TVariabl
90
90
 
91
91
  declare function useIsMutating(filters?: Accessor<MutationFilters>, queryClient?: Accessor<QueryClient>): Accessor<number>;
92
92
 
93
+ type MutationStateOptions<TResult = MutationState> = {
94
+ filters?: MutationFilters;
95
+ select?: (mutation: Mutation<unknown, DefaultError, unknown, unknown>) => TResult;
96
+ };
97
+ declare function useMutationState<TResult = MutationState>(options?: Accessor<MutationStateOptions<TResult>>, queryClient?: Accessor<QueryClient>): Accessor<Array<TResult>>;
98
+
93
99
  type CreateQueryOptionsForCreateQueries<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = Omit<SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'placeholderData'> & {
94
100
  placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>;
95
101
  };
@@ -146,4 +152,4 @@ declare function createQueries<T extends Array<any>, TCombinedResult extends Que
146
152
  declare const useIsRestoring: () => Accessor<boolean>;
147
153
  declare const IsRestoringProvider: solid_js.ContextProviderComponent<Accessor<boolean>>;
148
154
 
149
- export { CreateBaseMutationResult, CreateBaseQueryOptions, CreateBaseQueryResult, CreateInfiniteQueryOptions, CreateInfiniteQueryResult, CreateMutateAsyncFunction, CreateMutateFunction, CreateMutationOptions, CreateMutationResult, CreateQueryOptions, CreateQueryResult, DefaultOptions, DefinedCreateBaseQueryResult, DefinedCreateQueryResult, FunctionedParams, InfiniteQueryObserverOptions, IsRestoringProvider, QueryClient, QueryClientConfig, QueryClientContext, QueryClientProvider, QueryClientProviderProps, QueryObserverOptions, SolidInfiniteQueryOptions, SolidMutationOptions, SolidQueryOptions, createInfiniteQuery, createMutation, createQueries, createQuery, queryOptions, useIsFetching, useIsMutating, useIsRestoring, useQueryClient };
155
+ export { CreateBaseMutationResult, CreateBaseQueryOptions, CreateBaseQueryResult, CreateInfiniteQueryOptions, CreateInfiniteQueryResult, CreateMutateAsyncFunction, CreateMutateFunction, CreateMutationOptions, CreateMutationResult, CreateQueryOptions, CreateQueryResult, DefaultOptions, DefinedCreateBaseQueryResult, DefinedCreateQueryResult, FunctionedParams, InfiniteQueryObserverOptions, IsRestoringProvider, QueryClient, QueryClientConfig, QueryClientContext, QueryClientProvider, QueryClientProviderProps, QueryObserverOptions, SolidInfiniteQueryOptions, SolidMutationOptions, SolidQueryOptions, createInfiniteQuery, createMutation, createQueries, createQuery, queryOptions, useIsFetching, useIsMutating, useIsRestoring, useMutationState, useQueryClient };
package/build/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { DefaultError, QueryKey, QueryObserverOptions as QueryObserverOptions$1, InfiniteQueryObserverOptions as InfiniteQueryObserverOptions$1, DefaultOptions as DefaultOptions$1, QueryClientConfig as QueryClientConfig$1, QueryClient as QueryClient$1, WithRequired, QueryObserverResult, DefinedQueryObserverResult, InfiniteQueryObserverResult, MutationObserverOptions, MutateFunction, MutationObserverResult, QueryFilters, InfiniteData, MutationFilters, QueriesPlaceholderDataFunction, QueryFunction, ThrowOnError } from '@tanstack/query-core';
1
+ import { DefaultError, QueryKey, QueryObserverOptions as QueryObserverOptions$1, InfiniteQueryObserverOptions as InfiniteQueryObserverOptions$1, DefaultOptions as DefaultOptions$1, QueryClientConfig as QueryClientConfig$1, QueryClient as QueryClient$1, WithRequired, QueryObserverResult, DefinedQueryObserverResult, InfiniteQueryObserverResult, MutationObserverOptions, MutateFunction, MutationObserverResult, QueryFilters, InfiniteData, MutationFilters, MutationState, Mutation, QueriesPlaceholderDataFunction, QueryFunction, ThrowOnError } from '@tanstack/query-core';
2
2
  export * from '@tanstack/query-core';
3
3
  import * as solid_js from 'solid-js';
4
4
  import { JSX, Accessor } from 'solid-js';
@@ -90,6 +90,12 @@ declare function createMutation<TData = unknown, TError = DefaultError, TVariabl
90
90
 
91
91
  declare function useIsMutating(filters?: Accessor<MutationFilters>, queryClient?: Accessor<QueryClient>): Accessor<number>;
92
92
 
93
+ type MutationStateOptions<TResult = MutationState> = {
94
+ filters?: MutationFilters;
95
+ select?: (mutation: Mutation<unknown, DefaultError, unknown, unknown>) => TResult;
96
+ };
97
+ declare function useMutationState<TResult = MutationState>(options?: Accessor<MutationStateOptions<TResult>>, queryClient?: Accessor<QueryClient>): Accessor<Array<TResult>>;
98
+
93
99
  type CreateQueryOptionsForCreateQueries<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = Omit<SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'placeholderData'> & {
94
100
  placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>;
95
101
  };
@@ -146,4 +152,4 @@ declare function createQueries<T extends Array<any>, TCombinedResult extends Que
146
152
  declare const useIsRestoring: () => Accessor<boolean>;
147
153
  declare const IsRestoringProvider: solid_js.ContextProviderComponent<Accessor<boolean>>;
148
154
 
149
- export { CreateBaseMutationResult, CreateBaseQueryOptions, CreateBaseQueryResult, CreateInfiniteQueryOptions, CreateInfiniteQueryResult, CreateMutateAsyncFunction, CreateMutateFunction, CreateMutationOptions, CreateMutationResult, CreateQueryOptions, CreateQueryResult, DefaultOptions, DefinedCreateBaseQueryResult, DefinedCreateQueryResult, FunctionedParams, InfiniteQueryObserverOptions, IsRestoringProvider, QueryClient, QueryClientConfig, QueryClientContext, QueryClientProvider, QueryClientProviderProps, QueryObserverOptions, SolidInfiniteQueryOptions, SolidMutationOptions, SolidQueryOptions, createInfiniteQuery, createMutation, createQueries, createQuery, queryOptions, useIsFetching, useIsMutating, useIsRestoring, useQueryClient };
155
+ export { CreateBaseMutationResult, CreateBaseQueryOptions, CreateBaseQueryResult, CreateInfiniteQueryOptions, CreateInfiniteQueryResult, CreateMutateAsyncFunction, CreateMutateFunction, CreateMutationOptions, CreateMutationResult, CreateQueryOptions, CreateQueryResult, DefaultOptions, DefinedCreateBaseQueryResult, DefinedCreateQueryResult, FunctionedParams, InfiniteQueryObserverOptions, IsRestoringProvider, QueryClient, QueryClientConfig, QueryClientContext, QueryClientProvider, QueryClientProviderProps, QueryObserverOptions, SolidInfiniteQueryOptions, SolidMutationOptions, SolidQueryOptions, createInfiniteQuery, createMutation, createQueries, createQuery, queryOptions, useIsFetching, useIsMutating, useIsRestoring, useMutationState, useQueryClient };
package/build/index.js CHANGED
@@ -1,6 +1,6 @@
1
- import { notifyManager, QueryClient as QueryClient$1, MutationObserver, QueriesObserver, hydrate, QueryObserver, InfiniteQueryObserver } from '@tanstack/query-core';
1
+ import { notifyManager, QueryClient as QueryClient$1, MutationObserver, replaceEqualDeep, QueriesObserver, hydrate, QueryObserver, InfiniteQueryObserver } from '@tanstack/query-core';
2
2
  export * from '@tanstack/query-core';
3
- import { batch, createContext, useContext, createRenderEffect, onCleanup, createMemo, createSignal, createComputed, on, mergeProps, createResource, onMount, untrack } from 'solid-js';
3
+ import { batch, createContext, useContext, createRenderEffect, onCleanup, createMemo, createSignal, createComputed, on, createEffect, mergeProps, createResource, onMount, untrack } from 'solid-js';
4
4
  import { createComponent, isServer } from 'solid-js/web';
5
5
  import { createStore, unwrap, reconcile } from 'solid-js/store';
6
6
 
@@ -327,6 +327,33 @@ function useIsMutating(filters, queryClient) {
327
327
  onCleanup(unsubscribe);
328
328
  return mutations;
329
329
  }
330
+ function getResult(mutationCache, options) {
331
+ return mutationCache.findAll(options.filters).map(
332
+ (mutation) => options.select ? options.select(
333
+ mutation
334
+ ) : mutation.state
335
+ );
336
+ }
337
+ function useMutationState(options = () => ({}), queryClient) {
338
+ const client = createMemo(() => useQueryClient(queryClient?.()));
339
+ const mutationCache = createMemo(() => client().getMutationCache());
340
+ const [result, setResult] = createSignal(
341
+ getResult(mutationCache(), options())
342
+ );
343
+ createEffect(() => {
344
+ const unsubscribe = mutationCache().subscribe(() => {
345
+ const nextResult = replaceEqualDeep(
346
+ result(),
347
+ getResult(mutationCache(), options())
348
+ );
349
+ if (result() !== nextResult) {
350
+ setResult(nextResult);
351
+ }
352
+ });
353
+ onCleanup(unsubscribe);
354
+ });
355
+ return result;
356
+ }
330
357
  function createQueries(queriesOptions, queryClient) {
331
358
  const client = createMemo(() => useQueryClient(queryClient?.()));
332
359
  const isRestoring = useIsRestoring();
@@ -438,4 +465,4 @@ function createQueries(queriesOptions, queryClient) {
438
465
  return proxifiedState;
439
466
  }
440
467
 
441
- export { IsRestoringProvider, QueryClient, QueryClientContext, QueryClientProvider, createInfiniteQuery, createMutation, createQueries, createQuery, queryOptions, useIsFetching, useIsMutating, useIsRestoring, useQueryClient };
468
+ export { IsRestoringProvider, QueryClient, QueryClientContext, QueryClientProvider, createInfiniteQuery, createMutation, createQueries, createQuery, queryOptions, useIsFetching, useIsMutating, useIsRestoring, useMutationState, useQueryClient };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/solid-query",
3
- "version": "5.2.0",
3
+ "version": "5.2.1",
4
4
  "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid",
5
5
  "author": "tannerlinsley",
6
6
  "license": "MIT",
package/src/index.ts CHANGED
@@ -26,5 +26,6 @@ export { useIsFetching } from './useIsFetching'
26
26
  export { createInfiniteQuery } from './createInfiniteQuery'
27
27
  export { createMutation } from './createMutation'
28
28
  export { useIsMutating } from './useIsMutating'
29
+ export { useMutationState } from './useMutationState'
29
30
  export { createQueries } from './createQueries'
30
31
  export { useIsRestoring, IsRestoringProvider } from './isRestoring'