@tanstack/svelte-query 4.24.9 → 5.0.0-alpha.0

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 (42) hide show
  1. package/build/lib/{Hydrate.svelte → HydrationBoundary.svelte} +2 -1
  2. package/build/lib/HydrationBoundary.svelte.d.ts +21 -0
  3. package/build/lib/createBaseQuery.d.ts +2 -2
  4. package/build/lib/createBaseQuery.js +5 -5
  5. package/build/lib/createInfiniteQuery.d.ts +2 -4
  6. package/build/lib/createInfiniteQuery.js +3 -4
  7. package/build/lib/createMutation.d.ts +2 -5
  8. package/build/lib/createMutation.js +4 -5
  9. package/build/lib/createQueries.d.ts +11 -6
  10. package/build/lib/createQueries.js +2 -2
  11. package/build/lib/createQuery.d.ts +9 -21
  12. package/build/lib/createQuery.js +3 -5
  13. package/build/lib/index.d.ts +1 -1
  14. package/build/lib/index.js +1 -1
  15. package/build/lib/types.d.ts +14 -14
  16. package/build/lib/useHydrate.d.ts +2 -2
  17. package/build/lib/useHydrate.js +2 -2
  18. package/build/lib/useIsFetching.d.ts +2 -3
  19. package/build/lib/useIsFetching.js +3 -4
  20. package/build/lib/useIsMutating.d.ts +2 -3
  21. package/build/lib/useIsMutating.js +3 -4
  22. package/build/lib/useQueryClient.d.ts +1 -1
  23. package/build/lib/useQueryClient.js +6 -3
  24. package/package.json +2 -2
  25. package/src/HydrationBoundary.svelte +16 -0
  26. package/src/__tests__/CreateQueries.svelte +5 -3
  27. package/src/__tests__/CreateQuery.svelte +2 -2
  28. package/src/__tests__/createQueries.test.ts +26 -22
  29. package/src/__tests__/utils.ts +2 -34
  30. package/src/createBaseQuery.ts +6 -8
  31. package/src/createInfiniteQuery.ts +15 -81
  32. package/src/createMutation.ts +6 -67
  33. package/src/createQueries.ts +24 -15
  34. package/src/createQuery.ts +27 -108
  35. package/src/index.ts +1 -1
  36. package/src/types.ts +20 -15
  37. package/src/useHydrate.ts +6 -2
  38. package/src/useIsFetching.ts +2 -11
  39. package/src/useIsMutating.ts +3 -12
  40. package/src/useQueryClient.ts +8 -3
  41. package/build/lib/Hydrate.svelte.d.ts +0 -20
  42. package/src/Hydrate.svelte +0 -11
@@ -1,7 +1,8 @@
1
1
  <script>import { useHydrate } from "./useHydrate";
2
2
  export let state;
3
3
  export let options = void 0;
4
- useHydrate(state, options);
4
+ export let queryClient = void 0;
5
+ useHydrate(state, options, queryClient);
5
6
  </script>
6
7
 
7
8
  <slot />
@@ -0,0 +1,21 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { DehydratedState, HydrateOptions, QueryClient } from '@tanstack/query-core';
3
+ declare const __propDef: {
4
+ props: {
5
+ state: DehydratedState;
6
+ options?: HydrateOptions | undefined;
7
+ queryClient?: QueryClient | undefined;
8
+ };
9
+ events: {
10
+ [evt: string]: CustomEvent<any>;
11
+ };
12
+ slots: {
13
+ default: {};
14
+ };
15
+ };
16
+ export declare type HydrationBoundaryProps = typeof __propDef.props;
17
+ export declare type HydrationBoundaryEvents = typeof __propDef.events;
18
+ export declare type HydrationBoundarySlots = typeof __propDef.slots;
19
+ export default class HydrationBoundary extends SvelteComponentTyped<HydrationBoundaryProps, HydrationBoundaryEvents, HydrationBoundarySlots> {
20
+ }
21
+ export {};
@@ -1,3 +1,3 @@
1
- import { type QueryKey, type QueryObserver } from '@tanstack/query-core';
1
+ import type { QueryClient, QueryKey, QueryObserver } from '@tanstack/query-core';
2
2
  import type { CreateBaseQueryOptions, CreateBaseQueryResult } from './types';
3
- export declare function createBaseQuery<TQueryFnData, TError, TData, TQueryData, TQueryKey extends QueryKey>(options: CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>, Observer: typeof QueryObserver): CreateBaseQueryResult<TData, TError>;
3
+ export declare function createBaseQuery<TQueryFnData, TError, TData, TQueryData, TQueryKey extends QueryKey>(options: CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>, Observer: typeof QueryObserver, queryClient?: QueryClient): CreateBaseQueryResult<TData, TError>;
@@ -1,11 +1,11 @@
1
- import { notifyManager, } from '@tanstack/query-core';
1
+ import { notifyManager } from '@tanstack/query-core';
2
2
  import { useQueryClient } from './useQueryClient';
3
3
  import { derived, readable } from 'svelte/store';
4
- export function createBaseQuery(options, Observer) {
5
- const queryClient = useQueryClient();
6
- const defaultedOptions = queryClient.defaultQueryOptions(options);
4
+ export function createBaseQuery(options, Observer, queryClient) {
5
+ const client = useQueryClient(queryClient);
6
+ const defaultedOptions = client.defaultQueryOptions(options);
7
7
  defaultedOptions._optimisticResults = 'optimistic';
8
- let observer = new Observer(queryClient, defaultedOptions);
8
+ let observer = new Observer(client, defaultedOptions);
9
9
  // Include callbacks in batch renders
10
10
  if (defaultedOptions.onError) {
11
11
  defaultedOptions.onError = notifyManager.batchCalls(defaultedOptions.onError);
@@ -1,5 +1,3 @@
1
- import { type QueryFunction, type QueryKey } from '@tanstack/query-core';
1
+ import type { QueryKey, QueryClient, RegisteredError, InfiniteData } from '@tanstack/query-core';
2
2
  import type { CreateInfiniteQueryOptions, CreateInfiniteQueryResult } from './types';
3
- export declare function createInfiniteQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>): CreateInfiniteQueryResult<TData, TError>;
4
- export declare function createInfiniteQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, options?: Omit<CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, 'queryKey'>): CreateInfiniteQueryResult<TData, TError>;
5
- export declare function createInfiniteQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, queryFn: QueryFunction<TQueryFnData, TQueryKey>, options?: Omit<CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, 'queryKey' | 'queryFn'>): CreateInfiniteQueryResult<TData, TError>;
3
+ export declare function createInfiniteQuery<TQueryFnData, TError = RegisteredError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam>, queryClient?: QueryClient): CreateInfiniteQueryResult<TData, TError>;
@@ -1,6 +1,5 @@
1
- import { InfiniteQueryObserver, parseQueryArgs, } from '@tanstack/query-core';
1
+ import { InfiniteQueryObserver } from '@tanstack/query-core';
2
2
  import { createBaseQuery } from './createBaseQuery';
3
- export function createInfiniteQuery(arg1, arg2, arg3) {
4
- const options = parseQueryArgs(arg1, arg2, arg3);
5
- return createBaseQuery(options, InfiniteQueryObserver);
3
+ export function createInfiniteQuery(options, queryClient) {
4
+ return createBaseQuery(options, InfiniteQueryObserver, queryClient);
6
5
  }
@@ -1,6 +1,3 @@
1
- import { type MutationFunction, type MutationKey } from '@tanstack/query-core';
1
+ import type { QueryClient, RegisteredError } from '@tanstack/query-core';
2
2
  import type { CreateMutationOptions, CreateMutationResult } from './types';
3
- export declare function createMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(options: CreateMutationOptions<TData, TError, TVariables, TContext>): CreateMutationResult<TData, TError, TVariables, TContext>;
4
- export declare function createMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(mutationFn: MutationFunction<TData, TVariables>, options?: Omit<CreateMutationOptions<TData, TError, TVariables, TContext>, 'mutationFn'>): CreateMutationResult<TData, TError, TVariables, TContext>;
5
- export declare function createMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(mutationKey: MutationKey, options?: Omit<CreateMutationOptions<TData, TError, TVariables, TContext>, 'mutationKey'>): CreateMutationResult<TData, TError, TVariables, TContext>;
6
- export declare function createMutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown>(mutationKey: MutationKey, mutationFn?: MutationFunction<TData, TVariables>, options?: Omit<CreateMutationOptions<TData, TError, TVariables, TContext>, 'mutationKey' | 'mutationFn'>): CreateMutationResult<TData, TError, TVariables, TContext>;
3
+ export declare function createMutation<TData = unknown, TError = RegisteredError, TVariables = void, TContext = unknown>(options: CreateMutationOptions<TData, TError, TVariables, TContext>, queryClient?: QueryClient): CreateMutationResult<TData, TError, TVariables, TContext>;
@@ -1,10 +1,9 @@
1
1
  import { readable, derived } from 'svelte/store';
2
- import { MutationObserver, notifyManager, parseMutationArgs, } from '@tanstack/query-core';
2
+ import { MutationObserver, notifyManager } from '@tanstack/query-core';
3
3
  import { useQueryClient } from './useQueryClient';
4
- export function createMutation(arg1, arg2, arg3) {
5
- const options = parseMutationArgs(arg1, arg2, arg3);
6
- const queryClient = useQueryClient();
7
- let observer = new MutationObserver(queryClient, options);
4
+ export function createMutation(options, queryClient) {
5
+ const client = useQueryClient(queryClient);
6
+ let observer = new MutationObserver(client, options);
8
7
  let mutate;
9
8
  readable(observer).subscribe(($observer) => {
10
9
  observer = $observer;
@@ -1,7 +1,9 @@
1
- import type { QueryKey, QueryFunction, QueryObserverResult } from '@tanstack/query-core';
1
+ import type { QueryKey, QueryFunction, QueryClient, QueriesPlaceholderDataFunction, QueryObserverResult, RegisteredError } from '@tanstack/query-core';
2
2
  import { type Readable } from 'svelte/store';
3
3
  import type { CreateQueryOptions } from './types';
4
- declare type CreateQueryOptionsForCreateQueries<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = Omit<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'context'>;
4
+ declare type CreateQueryOptionsForCreateQueries<TQueryFnData = unknown, TError = RegisteredError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = Omit<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'placeholderData'> & {
5
+ placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>;
6
+ };
5
7
  declare type MAXIMUM_DEPTH = 20;
6
8
  declare type GetOptions<T> = T extends {
7
9
  queryFnData: infer TQueryFnData;
@@ -16,9 +18,9 @@ declare type GetOptions<T> = T extends {
16
18
  } ? CreateQueryOptionsForCreateQueries<unknown, TError, TData> : T extends [infer TQueryFnData, infer TError, infer TData] ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData> : T extends [infer TQueryFnData, infer TError] ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError> : T extends [infer TQueryFnData] ? CreateQueryOptionsForCreateQueries<TQueryFnData> : T extends {
17
19
  queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>;
18
20
  select: (data: any) => infer TData;
19
- } ? CreateQueryOptionsForCreateQueries<TQueryFnData, unknown, TData, TQueryKey> : T extends {
21
+ } ? CreateQueryOptionsForCreateQueries<TQueryFnData, Error, TData, TQueryKey> : T extends {
20
22
  queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>;
21
- } ? CreateQueryOptionsForCreateQueries<TQueryFnData, unknown, TQueryFnData, TQueryKey> : CreateQueryOptionsForCreateQueries;
23
+ } ? CreateQueryOptionsForCreateQueries<TQueryFnData, Error, TQueryFnData, TQueryKey> : CreateQueryOptionsForCreateQueries;
22
24
  declare type GetResults<T> = T extends {
23
25
  queryFnData: any;
24
26
  error?: infer TError;
@@ -42,7 +44,10 @@ export declare type QueriesOptions<T extends any[], Result extends any[] = [], D
42
44
  /**
43
45
  * QueriesResults reducer recursively maps type param to results
44
46
  */
45
- export declare type QueriesResults<T extends any[], Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? QueryObserverResult[] : T extends [] ? [] : T extends [infer Head] ? [...Result, GetResults<Head>] : T extends [infer Head, ...infer Tail] ? QueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]> : T extends CreateQueryOptionsForCreateQueries<infer TQueryFnData, infer TError, infer TData, any>[] ? QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[] : QueryObserverResult[];
47
+ export declare type QueriesResults<T extends any[], Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? QueryObserverResult[] : T extends [] ? [] : T extends [infer Head] ? [...Result, GetResults<Head>] : T extends [infer Head, ...infer Tail] ? QueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]> : T extends CreateQueryOptionsForCreateQueries<infer TQueryFnData, infer TError, infer TData, any>[] ? QueryObserverResult<unknown extends TData ? TQueryFnData : TData, unknown extends TError ? RegisteredError : TError>[] : QueryObserverResult[];
46
48
  export declare type CreateQueriesResult<T extends any[]> = Readable<QueriesResults<T>>;
47
- export declare function createQueries<T extends any[]>(queries: readonly [...QueriesOptions<T>]): CreateQueriesResult<T>;
49
+ export declare function createQueries<T extends any[]>({ queries, queryClient, }: {
50
+ queries: readonly [...QueriesOptions<T>];
51
+ queryClient?: QueryClient;
52
+ }): CreateQueriesResult<T>;
48
53
  export {};
@@ -1,8 +1,8 @@
1
1
  import { notifyManager, QueriesObserver } from '@tanstack/query-core';
2
2
  import { readable } from 'svelte/store';
3
3
  import { useQueryClient } from './useQueryClient';
4
- export function createQueries(queries) {
5
- const client = useQueryClient();
4
+ export function createQueries({ queries, queryClient, }) {
5
+ const client = useQueryClient(queryClient);
6
6
  // const isRestoring = useIsRestoring()
7
7
  function getDefaultQuery(newQueries) {
8
8
  return newQueries.map((options) => {
@@ -1,23 +1,11 @@
1
- import type { QueryFunction, QueryKey } from '@tanstack/query-core';
1
+ import type { QueryKey, QueryClient, RegisteredError } from '@tanstack/query-core';
2
2
  import type { DefinedCreateQueryResult, CreateQueryOptions, CreateQueryResult } from './types';
3
- export declare function createQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: Omit<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'initialData'> & {
4
- initialData?: () => undefined;
5
- }): CreateQueryResult<TData, TError>;
6
- export declare function createQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: Omit<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'initialData'> & {
3
+ declare type UndefinedInitialDataOptions<TQueryFnData = unknown, TError = RegisteredError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
4
+ initialData?: undefined;
5
+ };
6
+ declare type DefinedInitialDataOptions<TQueryFnData = unknown, TError = RegisteredError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
7
7
  initialData: TQueryFnData | (() => TQueryFnData);
8
- }): DefinedCreateQueryResult<TData, TError>;
9
- export declare function createQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>): CreateQueryResult<TData, TError>;
10
- export declare function createQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, options?: Omit<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryKey' | 'initialData'> & {
11
- initialData?: () => undefined;
12
- }): CreateQueryResult<TData, TError>;
13
- export declare function createQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, options?: Omit<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryKey' | 'initialData'> & {
14
- initialData: TQueryFnData | (() => TQueryFnData);
15
- }): DefinedCreateQueryResult<TData, TError>;
16
- export declare function createQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, options?: Omit<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryKey'>): CreateQueryResult<TData, TError>;
17
- export declare function createQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, queryFn: QueryFunction<TQueryFnData, TQueryKey>, options?: Omit<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryKey' | 'queryFn' | 'initialData'> & {
18
- initialData?: () => undefined;
19
- }): CreateQueryResult<TData, TError>;
20
- export declare function createQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, queryFn: QueryFunction<TQueryFnData, TQueryKey>, options?: Omit<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryKey' | 'queryFn' | 'initialData'> & {
21
- initialData: TQueryFnData | (() => TQueryFnData);
22
- }): DefinedCreateQueryResult<TData, TError>;
23
- export declare function createQuery<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(queryKey: TQueryKey, queryFn: QueryFunction<TQueryFnData, TQueryKey>, options?: Omit<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryKey' | 'queryFn'>): CreateQueryResult<TData, TError>;
8
+ };
9
+ export declare function createQuery<TQueryFnData = unknown, TError = RegisteredError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): CreateQueryResult<TData, TError>;
10
+ export declare function createQuery<TQueryFnData = unknown, TError = RegisteredError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient): DefinedCreateQueryResult<TData, TError>;
11
+ export {};
@@ -1,7 +1,5 @@
1
- import { QueryObserver, parseQueryArgs } from '@tanstack/query-core';
1
+ import { QueryObserver } from '@tanstack/query-core';
2
2
  import { createBaseQuery } from './createBaseQuery';
3
- export function createQuery(arg1, arg2, arg3) {
4
- const parsedOptions = parseQueryArgs(arg1, arg2, arg3);
5
- const result = createBaseQuery(parsedOptions, QueryObserver);
6
- return result;
3
+ export function createQuery(options, queryClient) {
4
+ return createBaseQuery(options, QueryObserver, queryClient);
7
5
  }
@@ -8,5 +8,5 @@ export { useQueryClient } from './useQueryClient';
8
8
  export { useIsFetching } from './useIsFetching';
9
9
  export { useIsMutating } from './useIsMutating';
10
10
  export { useHydrate } from './useHydrate';
11
- export { default as Hydrate } from './Hydrate.svelte';
11
+ export { default as HydrationBoundary } from './HydrationBoundary.svelte';
12
12
  export { default as QueryClientProvider } from './QueryClientProvider.svelte';
@@ -11,5 +11,5 @@ export { useQueryClient } from './useQueryClient';
11
11
  export { useIsFetching } from './useIsFetching';
12
12
  export { useIsMutating } from './useIsMutating';
13
13
  export { useHydrate } from './useHydrate';
14
- export { default as Hydrate } from './Hydrate.svelte';
14
+ export { default as HydrationBoundary } from './HydrationBoundary.svelte';
15
15
  export { default as QueryClientProvider } from './QueryClientProvider.svelte';
@@ -1,4 +1,4 @@
1
- import type { InfiniteQueryObserverOptions, InfiniteQueryObserverResult, MutationObserverResult, QueryObserverOptions, QueryObserverResult, QueryKey, MutationObserverOptions, MutateFunction, DefinedQueryObserverResult } from '@tanstack/query-core';
1
+ import type { InfiniteQueryObserverOptions, InfiniteQueryObserverResult, MutationObserverResult, QueryObserverOptions, QueryObserverResult, QueryKey, MutationObserverOptions, MutateFunction, DefinedQueryObserverResult, RegisteredError } from '@tanstack/query-core';
2
2
  import type { QueryClient } from '@tanstack/query-core';
3
3
  import type { Readable } from 'svelte/store';
4
4
  export interface ContextOptions {
@@ -7,29 +7,29 @@ export interface ContextOptions {
7
7
  */
8
8
  context?: QueryClient | undefined;
9
9
  }
10
- export interface CreateBaseQueryOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends ContextOptions, QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey> {
10
+ export interface CreateBaseQueryOptions<TQueryFnData = unknown, TError = RegisteredError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends ContextOptions, QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey> {
11
11
  }
12
- export interface CreateBaseQueryResult<TData = unknown, TError = unknown> extends Readable<QueryObserverResult<TData, TError>> {
12
+ export interface CreateBaseQueryResult<TData = unknown, TError = RegisteredError> extends Readable<QueryObserverResult<TData, TError>> {
13
13
  }
14
- export interface CreateQueryOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey> {
14
+ export interface CreateQueryOptions<TQueryFnData = unknown, TError = RegisteredError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey> {
15
15
  }
16
- export interface CreateQueryResult<TData = unknown, TError = unknown> extends CreateBaseQueryResult<TData, TError> {
16
+ export interface CreateQueryResult<TData = unknown, TError = RegisteredError> extends CreateBaseQueryResult<TData, TError> {
17
17
  }
18
- export interface CreateInfiniteQueryOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey> {
18
+ export interface CreateInfiniteQueryOptions<TQueryFnData = unknown, TError = RegisteredError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam> {
19
19
  }
20
- export declare type CreateInfiniteQueryResult<TData = unknown, TError = unknown> = Readable<InfiniteQueryObserverResult<TData, TError>>;
21
- export declare type DefinedCreateBaseQueryResult<TData = unknown, TError = unknown> = Readable<DefinedQueryObserverResult<TData, TError>>;
22
- export declare type DefinedCreateQueryResult<TData = unknown, TError = unknown> = DefinedCreateBaseQueryResult<TData, TError>;
23
- export interface CreateMutationOptions<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> extends ContextOptions, Omit<MutationObserverOptions<TData, TError, TVariables, TContext>, '_defaulted' | 'variables'> {
20
+ export declare type CreateInfiniteQueryResult<TData = unknown, TError = RegisteredError> = Readable<InfiniteQueryObserverResult<TData, TError>>;
21
+ export declare type DefinedCreateBaseQueryResult<TData = unknown, TError = RegisteredError> = Readable<DefinedQueryObserverResult<TData, TError>>;
22
+ export declare type DefinedCreateQueryResult<TData = unknown, TError = RegisteredError> = DefinedCreateBaseQueryResult<TData, TError>;
23
+ export interface CreateMutationOptions<TData = unknown, TError = RegisteredError, TVariables = void, TContext = unknown> extends ContextOptions, Omit<MutationObserverOptions<TData, TError, TVariables, TContext>, '_defaulted' | 'variables'> {
24
24
  }
25
- export declare type CreateMutateFunction<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> = (...args: Parameters<MutateFunction<TData, TError, TVariables, TContext>>) => void;
26
- export declare type CreateMutateAsyncFunction<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> = MutateFunction<TData, TError, TVariables, TContext>;
27
- export declare type CreateBaseMutationResult<TData = unknown, TError = unknown, TVariables = unknown, TContext = unknown> = Override<MutationObserverResult<TData, TError, TVariables, TContext>, {
25
+ export declare type CreateMutateFunction<TData = unknown, TError = RegisteredError, TVariables = void, TContext = unknown> = (...args: Parameters<MutateFunction<TData, TError, TVariables, TContext>>) => void;
26
+ export declare type CreateMutateAsyncFunction<TData = unknown, TError = RegisteredError, TVariables = void, TContext = unknown> = MutateFunction<TData, TError, TVariables, TContext>;
27
+ export declare type CreateBaseMutationResult<TData = unknown, TError = RegisteredError, TVariables = unknown, TContext = unknown> = Override<MutationObserverResult<TData, TError, TVariables, TContext>, {
28
28
  mutate: CreateMutateFunction<TData, TError, TVariables, TContext>;
29
29
  }> & {
30
30
  mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TContext>;
31
31
  };
32
- export interface CreateMutationResult<TData = unknown, TError = unknown, TVariables = unknown, TContext = unknown> extends Readable<CreateBaseMutationResult<TData, TError, TVariables, TContext>> {
32
+ export interface CreateMutationResult<TData = unknown, TError = RegisteredError, TVariables = unknown, TContext = unknown> extends Readable<CreateBaseMutationResult<TData, TError, TVariables, TContext>> {
33
33
  }
34
34
  declare type Override<A, B> = {
35
35
  [K in keyof A]: K extends keyof B ? B[K] : A[K];
@@ -1,2 +1,2 @@
1
- import { type HydrateOptions } from '@tanstack/query-core';
2
- export declare function useHydrate(state?: unknown, options?: HydrateOptions): void;
1
+ import { type HydrateOptions, type QueryClient } from '@tanstack/query-core';
2
+ export declare function useHydrate(state?: unknown, options?: HydrateOptions, queryClient?: QueryClient): void;
@@ -1,7 +1,7 @@
1
1
  import { hydrate, } from '@tanstack/query-core';
2
2
  import { useQueryClient } from './useQueryClient';
3
- export function useHydrate(state, options) {
4
- const client = useQueryClient();
3
+ export function useHydrate(state, options, queryClient) {
4
+ const client = useQueryClient(queryClient);
5
5
  if (state) {
6
6
  hydrate(client, state, options);
7
7
  }
@@ -1,4 +1,3 @@
1
- import { type QueryFilters, type QueryKey } from '@tanstack/query-core';
1
+ import { type QueryFilters, type QueryClient } from '@tanstack/query-core';
2
2
  import { type Readable } from 'svelte/store';
3
- export declare function useIsFetching(filters?: QueryFilters): Readable<number>;
4
- export declare function useIsFetching(queryKey?: QueryKey, filters?: QueryFilters): Readable<number>;
3
+ export declare function useIsFetching(filters?: QueryFilters, queryClient?: QueryClient): Readable<number>;
@@ -1,9 +1,8 @@
1
- import { parseFilterArgs, notifyManager, } from '@tanstack/query-core';
1
+ import { notifyManager, } from '@tanstack/query-core';
2
2
  import { readable } from 'svelte/store';
3
3
  import { useQueryClient } from './useQueryClient';
4
- export function useIsFetching(arg1, arg2) {
5
- const [filters] = parseFilterArgs(arg1, arg2);
6
- const client = useQueryClient();
4
+ export function useIsFetching(filters, queryClient) {
5
+ const client = useQueryClient(queryClient);
7
6
  const cache = client.getQueryCache();
8
7
  // isFetching is the prev value initialized on mount *
9
8
  let isFetching = client.isFetching(filters);
@@ -1,4 +1,3 @@
1
- import { type MutationFilters, type MutationKey } from '@tanstack/query-core';
1
+ import { type MutationFilters, type QueryClient } from '@tanstack/query-core';
2
2
  import { type Readable } from 'svelte/store';
3
- export declare function useIsMutating(filters?: MutationFilters): Readable<number>;
4
- export declare function useIsMutating(mutationKey?: MutationKey, filters?: Omit<MutationFilters, 'mutationKey'>): Readable<number>;
3
+ export declare function useIsMutating(filters?: MutationFilters, queryClient?: QueryClient): Readable<number>;
@@ -1,9 +1,8 @@
1
- import { notifyManager, parseMutationFilterArgs, } from '@tanstack/query-core';
1
+ import { notifyManager, } from '@tanstack/query-core';
2
2
  import { readable } from 'svelte/store';
3
3
  import { useQueryClient } from './useQueryClient';
4
- export function useIsMutating(arg1, arg2) {
5
- const [filters] = parseMutationFilterArgs(arg1, arg2);
6
- const client = useQueryClient();
4
+ export function useIsMutating(filters, queryClient) {
5
+ const client = useQueryClient(queryClient);
7
6
  const cache = client.getMutationCache();
8
7
  // isMutating is the prev value initialized on mount *
9
8
  let isMutating = client.isMutating(filters);
@@ -1,2 +1,2 @@
1
1
  import type { QueryClient } from '@tanstack/query-core';
2
- export declare function useQueryClient(): QueryClient;
2
+ export declare function useQueryClient(queryClient?: QueryClient): QueryClient;
@@ -1,5 +1,8 @@
1
1
  import { getQueryClientContext } from './context';
2
- export function useQueryClient() {
3
- const queryClient = getQueryClientContext();
4
- return queryClient;
2
+ export function useQueryClient(queryClient) {
3
+ const client = getQueryClientContext();
4
+ if (queryClient) {
5
+ return queryClient;
6
+ }
7
+ return client;
5
8
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/svelte-query",
3
- "version": "4.24.9",
3
+ "version": "5.0.0-alpha.0",
4
4
  "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte",
5
5
  "author": "Dre Johnson",
6
6
  "license": "MIT",
@@ -28,7 +28,7 @@
28
28
  "vitest": "^0.27.1"
29
29
  },
30
30
  "dependencies": {
31
- "@tanstack/query-core": "4.24.9"
31
+ "@tanstack/query-core": "5.0.0-alpha.0"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "svelte": "^3.54.0"
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import type {
3
+ DehydratedState,
4
+ HydrateOptions,
5
+ QueryClient,
6
+ } from '@tanstack/query-core'
7
+ import { useHydrate } from './useHydrate'
8
+
9
+ export let state: DehydratedState
10
+ export let options: HydrateOptions | undefined = undefined
11
+ export let queryClient: QueryClient | undefined = undefined
12
+
13
+ useHydrate(state, options, queryClient)
14
+ </script>
15
+
16
+ <slot />
@@ -3,7 +3,7 @@
3
3
  import { setQueryClientContext } from '../context'
4
4
  import type { QueriesOptions } from '../createQueries'
5
5
 
6
- export let options: readonly [...QueriesOptions<any>]
6
+ export let options: { queries: readonly [...QueriesOptions<any>] }
7
7
 
8
8
  const queryClient = new QueryClient()
9
9
  setQueryClientContext(queryClient)
@@ -11,8 +11,10 @@
11
11
  const queries = createQueries(options)
12
12
  </script>
13
13
 
14
- {#each $queries as query}
15
- {#if query.isSuccess}
14
+ {#each $queries as query, index}
15
+ {#if query.isPending}
16
+ <p>Loading {index + 1}</p>
17
+ {:else if query.isSuccess}
16
18
  <p>{query.data}</p>
17
19
  {/if}
18
20
  {/each}
@@ -2,7 +2,7 @@
2
2
  import { createQuery, QueryClient, type CreateQueryOptions } from '../index'
3
3
  import { setQueryClientContext } from '../context'
4
4
 
5
- export let options: CreateQueryOptions
5
+ export let options: CreateQueryOptions<any>
6
6
 
7
7
  const queryClient = new QueryClient()
8
8
  setQueryClientContext(queryClient)
@@ -10,7 +10,7 @@
10
10
  const query = createQuery(options)
11
11
  </script>
12
12
 
13
- {#if $query.isLoading}
13
+ {#if $query.isPending}
14
14
  <p>Loading</p>
15
15
  {:else if $query.isError}
16
16
  <p>Error</p>
@@ -1,37 +1,41 @@
1
1
  import { describe, it, expect } from 'vitest'
2
- import { render, screen } from '@testing-library/svelte'
2
+ import { render, waitFor } from '@testing-library/svelte'
3
3
  import CreateQueries from './CreateQueries.svelte'
4
4
  import { sleep } from './utils'
5
5
 
6
6
  describe('createQueries', () => {
7
7
  it('Render and wait for success', async () => {
8
- render(CreateQueries, {
8
+ const rendered = render(CreateQueries, {
9
9
  props: {
10
- options: [
11
- {
12
- queryKey: ['key-1'],
13
- queryFn: async () => {
14
- await sleep(10)
15
- return 'Success 1'
10
+ options: {
11
+ queries: [
12
+ {
13
+ queryKey: ['key-1'],
14
+ queryFn: async () => {
15
+ await sleep(10)
16
+ return 'Success 1'
17
+ },
16
18
  },
17
- },
18
- {
19
- queryKey: ['key-2'],
20
- queryFn: async () => {
21
- await sleep(10)
22
- return 'Success 2'
19
+ {
20
+ queryKey: ['key-2'],
21
+ queryFn: async () => {
22
+ await sleep(10)
23
+ return 'Success 2'
24
+ },
23
25
  },
24
- },
25
- ],
26
+ ],
27
+ },
26
28
  },
27
29
  })
28
30
 
29
- expect(screen.queryByText('Success 1')).not.toBeInTheDocument()
30
- expect(screen.queryByText('Success 2')).not.toBeInTheDocument()
31
-
32
- await sleep(20)
31
+ await waitFor(() => {
32
+ expect(rendered.getByText('Loading 1')).toBeInTheDocument()
33
+ expect(rendered.getByText('Loading 2')).toBeInTheDocument()
34
+ })
33
35
 
34
- expect(screen.queryByText('Success 1')).toBeInTheDocument()
35
- expect(screen.queryByText('Success 2')).toBeInTheDocument()
36
+ await waitFor(() => {
37
+ expect(rendered.getByText('Success 1')).toBeInTheDocument()
38
+ expect(rendered.getByText('Success 2')).toBeInTheDocument()
39
+ })
36
40
  })
37
41
  })
@@ -1,14 +1,9 @@
1
1
  import { vi } from 'vitest'
2
2
  import { act } from '@testing-library/svelte'
3
- import {
4
- QueryClient,
5
- type QueryClientConfig,
6
- type MutationOptions,
7
- } from '../index'
3
+ import { QueryClient, type QueryClientConfig } from '../index'
8
4
 
9
5
  export function createQueryClient(config?: QueryClientConfig): QueryClient {
10
- vi.spyOn(console, 'error').mockImplementation(() => undefined)
11
- return new QueryClient({ logger: mockLogger, ...config })
6
+ return new QueryClient(config)
12
7
  }
13
8
 
14
9
  export function mockVisibilityState(value: DocumentVisibilityState) {
@@ -19,12 +14,6 @@ export function mockNavigatorOnLine(value: boolean) {
19
14
  return vi.spyOn(navigator, 'onLine', 'get').mockReturnValue(value)
20
15
  }
21
16
 
22
- export const mockLogger = {
23
- log: vi.fn(),
24
- warn: vi.fn(),
25
- error: vi.fn(),
26
- }
27
-
28
17
  let queryKeyCount = 0
29
18
  export function queryKey(): Array<string> {
30
19
  queryKeyCount++
@@ -49,24 +38,3 @@ export function setActTimeout(fn: () => void, ms?: number) {
49
38
  })
50
39
  }, ms)
51
40
  }
52
-
53
- /**
54
- * Assert the parameter is of a specific type.
55
- */
56
- export function expectType<T>(_: T): void {
57
- return undefined
58
- }
59
-
60
- /**
61
- * Assert the parameter is not typed as `any`
62
- */
63
- export function expectTypeNotAny<T>(_: 0 extends 1 & T ? never : T): void {
64
- return undefined
65
- }
66
-
67
- export function executeMutation(
68
- queryClient: QueryClient,
69
- options: MutationOptions<any, any, any, any>,
70
- ): Promise<unknown> {
71
- return queryClient.getMutationCache().build(queryClient, options).execute()
72
- }
@@ -1,8 +1,5 @@
1
- import {
2
- notifyManager,
3
- type QueryKey,
4
- type QueryObserver,
5
- } from '@tanstack/query-core'
1
+ import type { QueryClient, QueryKey, QueryObserver } from '@tanstack/query-core'
2
+ import { notifyManager } from '@tanstack/query-core'
6
3
  import type { CreateBaseQueryOptions, CreateBaseQueryResult } from './types'
7
4
  import { useQueryClient } from './useQueryClient'
8
5
  import { derived, readable } from 'svelte/store'
@@ -22,9 +19,10 @@ export function createBaseQuery<
22
19
  TQueryKey
23
20
  >,
24
21
  Observer: typeof QueryObserver,
22
+ queryClient?: QueryClient,
25
23
  ): CreateBaseQueryResult<TData, TError> {
26
- const queryClient = useQueryClient()
27
- const defaultedOptions = queryClient.defaultQueryOptions(options)
24
+ const client = useQueryClient(queryClient)
25
+ const defaultedOptions = client.defaultQueryOptions(options)
28
26
  defaultedOptions._optimisticResults = 'optimistic'
29
27
 
30
28
  let observer = new Observer<
@@ -33,7 +31,7 @@ export function createBaseQuery<
33
31
  TData,
34
32
  TQueryData,
35
33
  TQueryKey
36
- >(queryClient, defaultedOptions)
34
+ >(client, defaultedOptions)
37
35
 
38
36
  // Include callbacks in batch renders
39
37
  if (defaultedOptions.onError) {