@tanstack/svelte-query 4.24.10 → 5.0.0-alpha.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/lib/{Hydrate.svelte → HydrationBoundary.svelte} +2 -1
- package/build/lib/HydrationBoundary.svelte.d.ts +21 -0
- package/build/lib/createBaseQuery.d.ts +3 -3
- package/build/lib/createBaseQuery.js +26 -22
- package/build/lib/createInfiniteQuery.d.ts +3 -5
- package/build/lib/createInfiniteQuery.js +5 -4
- package/build/lib/createMutation.d.ts +3 -6
- package/build/lib/createMutation.js +9 -9
- package/build/lib/createQueries.d.ts +12 -7
- package/build/lib/createQueries.js +12 -12
- package/build/lib/createQuery.d.ts +10 -22
- package/build/lib/createQuery.js +3 -5
- package/build/lib/index.d.ts +1 -1
- package/build/lib/index.js +1 -1
- package/build/lib/types.d.ts +16 -15
- package/build/lib/useHydrate.d.ts +2 -2
- package/build/lib/useHydrate.js +2 -2
- package/build/lib/useIsFetching.d.ts +2 -3
- package/build/lib/useIsFetching.js +3 -4
- package/build/lib/useIsMutating.d.ts +2 -3
- package/build/lib/useIsMutating.js +3 -4
- package/build/lib/useQueryClient.d.ts +1 -1
- package/build/lib/useQueryClient.js +6 -3
- package/build/lib/utils.d.ts +3 -0
- package/build/lib/utils.js +3 -0
- package/package.json +2 -2
- package/src/HydrationBoundary.svelte +16 -0
- package/src/__tests__/CreateQueries.svelte +5 -3
- package/src/__tests__/CreateQuery.svelte +14 -3
- package/src/__tests__/createQueries.test.ts +26 -22
- package/src/__tests__/createQuery.test.ts +36 -0
- package/src/__tests__/utils.ts +2 -34
- package/src/createBaseQuery.ts +47 -42
- package/src/createInfiniteQuery.ts +19 -81
- package/src/createMutation.ts +17 -72
- package/src/createQueries.ts +36 -27
- package/src/createQuery.ts +33 -107
- package/src/index.ts +1 -1
- package/src/types.ts +23 -16
- package/src/useHydrate.ts +6 -2
- package/src/useIsFetching.ts +2 -11
- package/src/useIsMutating.ts +3 -12
- package/src/useQueryClient.ts +8 -3
- package/src/utils.ts +8 -0
- package/build/lib/Hydrate.svelte.d.ts +0 -20
- package/src/Hydrate.svelte +0 -11
|
@@ -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 {
|
|
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
|
|
1
|
+
import type { QueryClient, QueryKey, QueryObserver } from '@tanstack/query-core';
|
|
2
|
+
import type { CreateBaseQueryOptions, CreateBaseQueryResult, WritableOrVal } from './types';
|
|
3
|
+
export declare function createBaseQuery<TQueryFnData, TError, TData, TQueryData, TQueryKey extends QueryKey>(options: WritableOrVal<CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>>, Observer: typeof QueryObserver, queryClient?: QueryClient): CreateBaseQueryResult<TData, TError>;
|
|
@@ -1,33 +1,37 @@
|
|
|
1
|
-
import { notifyManager
|
|
1
|
+
import { notifyManager } from '@tanstack/query-core';
|
|
2
2
|
import { useQueryClient } from './useQueryClient';
|
|
3
|
-
import { derived, readable } from 'svelte/store';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
3
|
+
import { derived, get, readable, writable } from 'svelte/store';
|
|
4
|
+
import { isWritable } from './utils';
|
|
5
|
+
export function createBaseQuery(options, Observer, queryClient) {
|
|
6
|
+
const client = useQueryClient(queryClient);
|
|
7
|
+
const optionsStore = isWritable(options) ? options : writable(options);
|
|
8
|
+
const defaultedOptionsStore = derived(optionsStore, ($options) => {
|
|
9
|
+
const defaultedOptions = client.defaultQueryOptions($options);
|
|
10
|
+
defaultedOptions._optimisticResults = 'optimistic';
|
|
11
|
+
// Include callbacks in batch renders
|
|
12
|
+
if (defaultedOptions.onError) {
|
|
13
|
+
defaultedOptions.onError = notifyManager.batchCalls(defaultedOptions.onError);
|
|
14
|
+
}
|
|
15
|
+
if (defaultedOptions.onSuccess) {
|
|
16
|
+
defaultedOptions.onSuccess = notifyManager.batchCalls(defaultedOptions.onSuccess);
|
|
17
|
+
}
|
|
18
|
+
if (defaultedOptions.onSettled) {
|
|
19
|
+
defaultedOptions.onSettled = notifyManager.batchCalls(defaultedOptions.onSettled);
|
|
20
|
+
}
|
|
21
|
+
return defaultedOptions;
|
|
22
|
+
});
|
|
23
|
+
const observer = new Observer(client, get(defaultedOptionsStore));
|
|
24
|
+
defaultedOptionsStore.subscribe(($defaultedOptions) => {
|
|
21
25
|
// Do not notify on updates because of changes in the options because
|
|
22
26
|
// these changes should already be reflected in the optimistic result.
|
|
23
|
-
observer.setOptions(defaultedOptions, { listeners: false });
|
|
27
|
+
observer.setOptions($defaultedOptions, { listeners: false });
|
|
24
28
|
});
|
|
25
29
|
const result = readable(observer.getCurrentResult(), (set) => {
|
|
26
30
|
return observer.subscribe(notifyManager.batchCalls(set));
|
|
27
31
|
});
|
|
28
32
|
const { subscribe } = derived(result, ($result) => {
|
|
29
|
-
$result = observer.getOptimisticResult(
|
|
30
|
-
return !
|
|
33
|
+
$result = observer.getOptimisticResult(get(defaultedOptionsStore));
|
|
34
|
+
return !get(defaultedOptionsStore).notifyOnChangeProps
|
|
31
35
|
? observer.trackResult($result)
|
|
32
36
|
: $result;
|
|
33
37
|
});
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { CreateInfiniteQueryOptions, CreateInfiniteQueryResult } from './types';
|
|
3
|
-
export declare function createInfiniteQuery<TQueryFnData
|
|
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>;
|
|
1
|
+
import type { QueryKey, QueryClient, RegisteredError, InfiniteData } from '@tanstack/query-core';
|
|
2
|
+
import type { CreateInfiniteQueryOptions, CreateInfiniteQueryResult, WritableOrVal } from './types';
|
|
3
|
+
export declare function createInfiniteQuery<TQueryFnData, TError = RegisteredError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: WritableOrVal<CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam>>, queryClient?: QueryClient): CreateInfiniteQueryResult<TData, TError>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { InfiniteQueryObserver
|
|
1
|
+
import { InfiniteQueryObserver } from '@tanstack/query-core';
|
|
2
2
|
import { createBaseQuery } from './createBaseQuery';
|
|
3
|
-
export function createInfiniteQuery(
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export function createInfiniteQuery(options, queryClient) {
|
|
4
|
+
return createBaseQuery(options,
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
|
|
6
|
+
InfiniteQueryObserver, queryClient);
|
|
6
7
|
}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { CreateMutationOptions, CreateMutationResult } from './types';
|
|
3
|
-
export declare function createMutation<TData = unknown, TError =
|
|
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>;
|
|
1
|
+
import type { QueryClient, RegisteredError } from '@tanstack/query-core';
|
|
2
|
+
import type { CreateMutationOptions, CreateMutationResult, WritableOrVal } from './types';
|
|
3
|
+
export declare function createMutation<TData = unknown, TError = RegisteredError, TVariables = void, TContext = unknown>(options: WritableOrVal<CreateMutationOptions<TData, TError, TVariables, TContext>>, queryClient?: QueryClient): CreateMutationResult<TData, TError, TVariables, TContext>;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { readable, derived } from 'svelte/store';
|
|
2
|
-
import { MutationObserver, notifyManager
|
|
1
|
+
import { readable, derived, writable, get } from 'svelte/store';
|
|
2
|
+
import { MutationObserver, notifyManager } from '@tanstack/query-core';
|
|
3
3
|
import { useQueryClient } from './useQueryClient';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
|
|
4
|
+
import { isWritable } from './utils';
|
|
5
|
+
export function createMutation(options, queryClient) {
|
|
6
|
+
const client = useQueryClient(queryClient);
|
|
7
|
+
const optionsStore = isWritable(options) ? options : writable(options);
|
|
8
|
+
const observer = new MutationObserver(client, get(optionsStore));
|
|
8
9
|
let mutate;
|
|
9
|
-
|
|
10
|
-
observer = $observer;
|
|
10
|
+
optionsStore.subscribe(($options) => {
|
|
11
11
|
mutate = (variables, mutateOptions) => {
|
|
12
12
|
observer.mutate(variables, mutateOptions).catch(noop);
|
|
13
13
|
};
|
|
14
|
-
observer.setOptions(options);
|
|
14
|
+
observer.setOptions($options);
|
|
15
15
|
});
|
|
16
16
|
const result = readable(observer.getCurrentResult(), (set) => {
|
|
17
17
|
return observer.subscribe(notifyManager.batchCalls((val) => set(val)));
|
|
@@ -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
|
-
import type { CreateQueryOptions } from './types';
|
|
4
|
-
declare type CreateQueryOptionsForCreateQueries<TQueryFnData = unknown, TError =
|
|
3
|
+
import type { CreateQueryOptions, WritableOrVal } from './types';
|
|
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,
|
|
21
|
+
} ? CreateQueryOptionsForCreateQueries<TQueryFnData, Error, TData, TQueryKey> : T extends {
|
|
20
22
|
queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>;
|
|
21
|
-
} ? CreateQueryOptionsForCreateQueries<TQueryFnData,
|
|
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
|
|
49
|
+
export declare function createQueries<T extends any[]>({ queries, queryClient, }: {
|
|
50
|
+
queries: WritableOrVal<[...QueriesOptions<T>]>;
|
|
51
|
+
queryClient?: QueryClient;
|
|
52
|
+
}): CreateQueriesResult<T>;
|
|
48
53
|
export {};
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import { notifyManager, QueriesObserver } from '@tanstack/query-core';
|
|
2
|
-
import { readable } from 'svelte/store';
|
|
2
|
+
import { derived, get, readable, writable } from 'svelte/store';
|
|
3
3
|
import { useQueryClient } from './useQueryClient';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import { isWritable } from './utils';
|
|
5
|
+
export function createQueries({ queries, queryClient, }) {
|
|
6
|
+
const client = useQueryClient(queryClient);
|
|
6
7
|
// const isRestoring = useIsRestoring()
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
const queriesStore = isWritable(queries) ? queries : writable(queries);
|
|
9
|
+
const defaultedQueriesStore = derived(queriesStore, ($queries) => {
|
|
10
|
+
return $queries.map((options) => {
|
|
9
11
|
const defaultedOptions = client.defaultQueryOptions(options);
|
|
10
12
|
// Make sure the results are already in fetching state before subscribing or updating options
|
|
11
13
|
defaultedOptions._optimisticResults = 'optimistic';
|
|
12
14
|
return defaultedOptions;
|
|
13
15
|
});
|
|
14
|
-
}
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
readable(observer).subscribe(($observer) => {
|
|
18
|
-
observer = $observer;
|
|
16
|
+
});
|
|
17
|
+
const observer = new QueriesObserver(client, get(defaultedQueriesStore));
|
|
18
|
+
defaultedQueriesStore.subscribe(($defaultedQueries) => {
|
|
19
19
|
// Do not notify on updates because of changes in the options because
|
|
20
20
|
// these changes should already be reflected in the optimistic result.
|
|
21
|
-
observer.setQueries(defaultedQueries, { listeners: false });
|
|
21
|
+
observer.setQueries($defaultedQueries, { listeners: false });
|
|
22
22
|
});
|
|
23
|
-
const { subscribe } = readable(observer.getOptimisticResult(
|
|
23
|
+
const { subscribe } = readable(observer.getOptimisticResult(get(defaultedQueriesStore)), (set) => {
|
|
24
24
|
return observer.subscribe(notifyManager.batchCalls(set));
|
|
25
25
|
});
|
|
26
26
|
return { subscribe };
|
|
@@ -1,23 +1,11 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { DefinedCreateQueryResult, CreateQueryOptions, CreateQueryResult } from './types';
|
|
3
|
-
|
|
4
|
-
initialData?:
|
|
5
|
-
}
|
|
6
|
-
|
|
1
|
+
import type { QueryKey, QueryClient, RegisteredError } from '@tanstack/query-core';
|
|
2
|
+
import type { DefinedCreateQueryResult, CreateQueryOptions, CreateQueryResult, WritableOrVal } from './types';
|
|
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
|
-
}
|
|
9
|
-
export declare function createQuery<TQueryFnData = unknown, TError =
|
|
10
|
-
export declare function createQuery<TQueryFnData = unknown, TError =
|
|
11
|
-
|
|
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: WritableOrVal<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: WritableOrVal<DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>>, queryClient?: QueryClient): DefinedCreateQueryResult<TData, TError>;
|
|
11
|
+
export {};
|
package/build/lib/createQuery.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { QueryObserver
|
|
1
|
+
import { QueryObserver } from '@tanstack/query-core';
|
|
2
2
|
import { createBaseQuery } from './createBaseQuery';
|
|
3
|
-
export function createQuery(
|
|
4
|
-
|
|
5
|
-
const result = createBaseQuery(parsedOptions, QueryObserver);
|
|
6
|
-
return result;
|
|
3
|
+
export function createQuery(options, queryClient) {
|
|
4
|
+
return createBaseQuery(options, QueryObserver, queryClient);
|
|
7
5
|
}
|
package/build/lib/index.d.ts
CHANGED
|
@@ -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
|
|
11
|
+
export { default as HydrationBoundary } from './HydrationBoundary.svelte';
|
|
12
12
|
export { default as QueryClientProvider } from './QueryClientProvider.svelte';
|
package/build/lib/index.js
CHANGED
|
@@ -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
|
|
14
|
+
export { default as HydrationBoundary } from './HydrationBoundary.svelte';
|
|
15
15
|
export { default as QueryClientProvider } from './QueryClientProvider.svelte';
|
package/build/lib/types.d.ts
CHANGED
|
@@ -1,35 +1,36 @@
|
|
|
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
|
-
import type { Readable } from 'svelte/store';
|
|
3
|
+
import type { Readable, Writable } from 'svelte/store';
|
|
4
|
+
export declare type WritableOrVal<T> = T | Writable<T>;
|
|
4
5
|
export interface ContextOptions {
|
|
5
6
|
/**
|
|
6
7
|
* Use this to pass your Svelte Query context. Otherwise, `defaultContext` will be used.
|
|
7
8
|
*/
|
|
8
9
|
context?: QueryClient | undefined;
|
|
9
10
|
}
|
|
10
|
-
export interface CreateBaseQueryOptions<TQueryFnData = unknown, TError =
|
|
11
|
+
export interface CreateBaseQueryOptions<TQueryFnData = unknown, TError = RegisteredError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends ContextOptions, QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey> {
|
|
11
12
|
}
|
|
12
|
-
export interface CreateBaseQueryResult<TData = unknown, TError =
|
|
13
|
+
export interface CreateBaseQueryResult<TData = unknown, TError = RegisteredError> extends Readable<QueryObserverResult<TData, TError>> {
|
|
13
14
|
}
|
|
14
|
-
export interface CreateQueryOptions<TQueryFnData = unknown, TError =
|
|
15
|
+
export interface CreateQueryOptions<TQueryFnData = unknown, TError = RegisteredError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey> {
|
|
15
16
|
}
|
|
16
|
-
export interface CreateQueryResult<TData = unknown, TError =
|
|
17
|
+
export interface CreateQueryResult<TData = unknown, TError = RegisteredError> extends CreateBaseQueryResult<TData, TError> {
|
|
17
18
|
}
|
|
18
|
-
export interface CreateInfiniteQueryOptions<TQueryFnData = unknown, TError =
|
|
19
|
+
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
20
|
}
|
|
20
|
-
export declare type CreateInfiniteQueryResult<TData = unknown, TError =
|
|
21
|
-
export declare type DefinedCreateBaseQueryResult<TData = unknown, TError =
|
|
22
|
-
export declare type DefinedCreateQueryResult<TData = unknown, TError =
|
|
23
|
-
export interface CreateMutationOptions<TData = unknown, TError =
|
|
21
|
+
export declare type CreateInfiniteQueryResult<TData = unknown, TError = RegisteredError> = Readable<InfiniteQueryObserverResult<TData, TError>>;
|
|
22
|
+
export declare type DefinedCreateBaseQueryResult<TData = unknown, TError = RegisteredError> = Readable<DefinedQueryObserverResult<TData, TError>>;
|
|
23
|
+
export declare type DefinedCreateQueryResult<TData = unknown, TError = RegisteredError> = DefinedCreateBaseQueryResult<TData, TError>;
|
|
24
|
+
export interface CreateMutationOptions<TData = unknown, TError = RegisteredError, TVariables = void, TContext = unknown> extends ContextOptions, Omit<MutationObserverOptions<TData, TError, TVariables, TContext>, '_defaulted' | 'variables'> {
|
|
24
25
|
}
|
|
25
|
-
export declare type CreateMutateFunction<TData = unknown, TError =
|
|
26
|
-
export declare type CreateMutateAsyncFunction<TData = unknown, TError =
|
|
27
|
-
export declare type CreateBaseMutationResult<TData = unknown, TError =
|
|
26
|
+
export declare type CreateMutateFunction<TData = unknown, TError = RegisteredError, TVariables = void, TContext = unknown> = (...args: Parameters<MutateFunction<TData, TError, TVariables, TContext>>) => void;
|
|
27
|
+
export declare type CreateMutateAsyncFunction<TData = unknown, TError = RegisteredError, TVariables = void, TContext = unknown> = MutateFunction<TData, TError, TVariables, TContext>;
|
|
28
|
+
export declare type CreateBaseMutationResult<TData = unknown, TError = RegisteredError, TVariables = unknown, TContext = unknown> = Override<MutationObserverResult<TData, TError, TVariables, TContext>, {
|
|
28
29
|
mutate: CreateMutateFunction<TData, TError, TVariables, TContext>;
|
|
29
30
|
}> & {
|
|
30
31
|
mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TContext>;
|
|
31
32
|
};
|
|
32
|
-
export interface CreateMutationResult<TData = unknown, TError =
|
|
33
|
+
export interface CreateMutationResult<TData = unknown, TError = RegisteredError, TVariables = unknown, TContext = unknown> extends Readable<CreateBaseMutationResult<TData, TError, TVariables, TContext>> {
|
|
33
34
|
}
|
|
34
35
|
declare type Override<A, B> = {
|
|
35
36
|
[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;
|
package/build/lib/useHydrate.js
CHANGED
|
@@ -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
|
|
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 {
|
|
1
|
+
import { notifyManager, } from '@tanstack/query-core';
|
|
2
2
|
import { readable } from 'svelte/store';
|
|
3
3
|
import { useQueryClient } from './useQueryClient';
|
|
4
|
-
export function useIsFetching(
|
|
5
|
-
const
|
|
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
|
|
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,
|
|
1
|
+
import { notifyManager, } from '@tanstack/query-core';
|
|
2
2
|
import { readable } from 'svelte/store';
|
|
3
3
|
import { useQueryClient } from './useQueryClient';
|
|
4
|
-
export function useIsMutating(
|
|
5
|
-
const
|
|
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
|
|
4
|
-
|
|
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": "
|
|
3
|
+
"version": "5.0.0-alpha.1",
|
|
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": "
|
|
31
|
+
"@tanstack/query-core": "5.0.0-alpha.1"
|
|
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:
|
|
6
|
+
export let options: { queries: [...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.
|
|
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}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
createQuery,
|
|
4
|
+
QueryClient,
|
|
5
|
+
type CreateQueryOptions,
|
|
6
|
+
type WritableOrVal,
|
|
7
|
+
} from '../index'
|
|
3
8
|
import { setQueryClientContext } from '../context'
|
|
4
9
|
|
|
5
|
-
export let options: CreateQueryOptions
|
|
10
|
+
export let options: WritableOrVal<CreateQueryOptions<any>>
|
|
6
11
|
|
|
7
12
|
const queryClient = new QueryClient()
|
|
8
13
|
setQueryClientContext(queryClient)
|
|
@@ -10,10 +15,16 @@
|
|
|
10
15
|
const query = createQuery(options)
|
|
11
16
|
</script>
|
|
12
17
|
|
|
13
|
-
{#if $query.
|
|
18
|
+
{#if $query.isPending}
|
|
14
19
|
<p>Loading</p>
|
|
15
20
|
{:else if $query.isError}
|
|
16
21
|
<p>Error</p>
|
|
17
22
|
{:else if $query.isSuccess}
|
|
18
23
|
<p>Success</p>
|
|
19
24
|
{/if}
|
|
25
|
+
|
|
26
|
+
<ul>
|
|
27
|
+
{#each $query.data ?? [] as entry}
|
|
28
|
+
<li>id: {entry.id}</li>
|
|
29
|
+
{/each}
|
|
30
|
+
</ul>
|