@tanstack/solid-query 5.0.0-alpha.85 → 5.0.0-alpha.87

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 (40) hide show
  1. package/build/dev.cjs +354 -0
  2. package/build/dev.js +341 -0
  3. package/build/index.cjs +351 -0
  4. package/build/index.d.cts +142 -0
  5. package/build/index.d.ts +142 -0
  6. package/build/index.js +338 -0
  7. package/package.json +24 -18
  8. package/src/__tests__/createMutation.test.tsx +13 -14
  9. package/src/__tests__/createQuery.test.tsx +30 -64
  10. package/src/__tests__/utils.tsx +5 -2
  11. package/dist/cjs/index.cjs +0 -359
  12. package/dist/cjs/index.cjs.map +0 -1
  13. package/dist/esm/index.js +0 -342
  14. package/dist/esm/index.js.map +0 -1
  15. package/dist/source/QueryClient.js +0 -6
  16. package/dist/source/QueryClientProvider.jsx +0 -21
  17. package/dist/source/createBaseQuery.js +0 -177
  18. package/dist/source/createInfiniteQuery.js +0 -8
  19. package/dist/source/createMutation.js +0 -38
  20. package/dist/source/createQueries.js +0 -38
  21. package/dist/source/createQuery.js +0 -9
  22. package/dist/source/index.js +0 -15
  23. package/dist/source/setBatchUpdatesFn.js +0 -3
  24. package/dist/source/types.js +0 -2
  25. package/dist/source/useIsFetching.js +0 -12
  26. package/dist/source/useIsMutating.js +0 -12
  27. package/dist/source/utils.js +0 -7
  28. package/dist/types/QueryClient.d.ts +0 -29
  29. package/dist/types/QueryClientProvider.d.ts +0 -9
  30. package/dist/types/createBaseQuery.d.ts +0 -5
  31. package/dist/types/createInfiniteQuery.d.ts +0 -5
  32. package/dist/types/createMutation.d.ts +0 -5
  33. package/dist/types/createQueries.d.ts +0 -53
  34. package/dist/types/createQuery.d.ts +0 -14
  35. package/dist/types/index.d.ts +0 -13
  36. package/dist/types/setBatchUpdatesFn.d.ts +0 -1
  37. package/dist/types/types.d.ts +0 -34
  38. package/dist/types/useIsFetching.d.ts +0 -4
  39. package/dist/types/useIsMutating.d.ts +0 -4
  40. package/dist/types/utils.d.ts +0 -1
@@ -1,177 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unnecessary-condition */
2
- // Had to disable the lint rule because isServer type is defined as false
3
- // in solid-js/web package. I'll create a GitHub issue with them to see
4
- // why that happens.
5
- import { hydrate, notifyManager } from '@tanstack/query-core';
6
- import { isServer } from 'solid-js/web';
7
- import { createComputed, createMemo, createResource, on, onCleanup, } from 'solid-js';
8
- import { createStore, reconcile, unwrap } from 'solid-js/store';
9
- import { useQueryClient } from './QueryClientProvider';
10
- import { shouldThrowError } from './utils';
11
- function reconcileFn(store, result, reconcileOption) {
12
- if (reconcileOption === false)
13
- return result;
14
- if (typeof reconcileOption === 'function') {
15
- const newData = reconcileOption(store.data, result.data);
16
- return { ...result, data: newData };
17
- }
18
- const newData = reconcile(result.data, { key: reconcileOption })(store.data);
19
- return { ...result, data: newData };
20
- }
21
- // Base Query Function that is used to create the query.
22
- export function createBaseQuery(options, Observer, queryClient) {
23
- const client = createMemo(() => useQueryClient(queryClient?.()));
24
- const defaultedOptions = client().defaultQueryOptions(options());
25
- defaultedOptions._optimisticResults = 'optimistic';
26
- defaultedOptions.structuralSharing = false;
27
- if (isServer) {
28
- defaultedOptions.retry = false;
29
- defaultedOptions.throwOnError = true;
30
- }
31
- const observer = new Observer(client(), defaultedOptions);
32
- const [state, setState] = createStore(observer.getOptimisticResult(defaultedOptions));
33
- const createServerSubscriber = (resolve, reject) => {
34
- return observer.subscribe((result) => {
35
- notifyManager.batchCalls(() => {
36
- const query = observer.getCurrentQuery();
37
- const { refetch, ...rest } = unwrap(result);
38
- const unwrappedResult = {
39
- ...rest,
40
- // hydrate() expects a QueryState object, which is similar but not
41
- // quite the same as a QueryObserverResult object. Thus, for now, we're
42
- // copying over the missing properties from state in order to support hydration
43
- dataUpdateCount: query.state.dataUpdateCount,
44
- fetchFailureCount: query.state.fetchFailureCount,
45
- // Removing these properties since they might not be serializable
46
- // fetchFailureReason: query.state.fetchFailureReason,
47
- // fetchMeta: query.state.fetchMeta,
48
- isInvalidated: query.state.isInvalidated,
49
- };
50
- if (unwrappedResult.isError) {
51
- if (process.env['NODE_ENV'] === 'development') {
52
- console.error(unwrappedResult.error);
53
- }
54
- reject(unwrappedResult.error);
55
- }
56
- if (unwrappedResult.isSuccess) {
57
- // Use of any here is fine
58
- // We cannot include refetch since it is not serializable
59
- resolve(unwrappedResult);
60
- }
61
- })();
62
- });
63
- };
64
- const createClientSubscriber = () => {
65
- return observer.subscribe((result) => {
66
- notifyManager.batchCalls(() => {
67
- // @ts-expect-error - This will error because the reconcile option does not
68
- // exist on the query-core QueryObserverResult type
69
- const reconcileOptions = observer.options.reconcile;
70
- // If the query has data we dont suspend but instead mutate the resource
71
- // This could happen when placeholderData/initialData is defined
72
- if (queryResource()?.data && result.data && !queryResource.loading) {
73
- setState((store) => {
74
- return reconcileFn(store, result, reconcileOptions === undefined ? 'id' : reconcileOptions);
75
- });
76
- mutate(state);
77
- }
78
- else {
79
- setState((store) => {
80
- return reconcileFn(store, result, reconcileOptions === undefined ? 'id' : reconcileOptions);
81
- });
82
- refetch();
83
- }
84
- })();
85
- });
86
- };
87
- /**
88
- * Unsubscribe is set lazily, so that we can subscribe after hydration when needed.
89
- */
90
- let unsubscribe = null;
91
- const [queryResource, { refetch, mutate }] = createResource(() => {
92
- return new Promise((resolve, reject) => {
93
- if (isServer) {
94
- unsubscribe = createServerSubscriber(resolve, reject);
95
- }
96
- else {
97
- if (!unsubscribe) {
98
- unsubscribe = createClientSubscriber();
99
- }
100
- }
101
- if (!state.isLoading) {
102
- resolve(state);
103
- }
104
- });
105
- }, {
106
- initialValue: state,
107
- // If initialData is provided, we resolve the resource immediately
108
- ssrLoadFrom: options().initialData ? 'initial' : 'server',
109
- get deferStream() {
110
- return options().deferStream;
111
- },
112
- /**
113
- * If this resource was populated on the server (either sync render, or streamed in over time), onHydrated
114
- * will be called. This is the point at which we can hydrate the query cache state, and setup the query subscriber.
115
- *
116
- * Leveraging onHydrated allows us to plug into the async and streaming support that solidjs resources already support.
117
- *
118
- * Note that this is only invoked on the client, for queries that were originally run on the server.
119
- */
120
- onHydrated(_k, info) {
121
- if (info.value) {
122
- hydrate(client(), {
123
- queries: [
124
- {
125
- queryKey: defaultedOptions.queryKey,
126
- queryHash: defaultedOptions.queryHash,
127
- state: info.value,
128
- },
129
- ],
130
- });
131
- }
132
- if (!unsubscribe) {
133
- /**
134
- * Do not refetch query on mount if query was fetched on server,
135
- * even if `staleTime` is not set.
136
- */
137
- const newOptions = { ...defaultedOptions };
138
- if (defaultedOptions.staleTime || !defaultedOptions.initialData) {
139
- newOptions.refetchOnMount = false;
140
- }
141
- // Setting the options as an immutable object to prevent
142
- // wonky behavior with observer subscriptions
143
- observer.setOptions(newOptions);
144
- setState(observer.getOptimisticResult(newOptions));
145
- unsubscribe = createClientSubscriber();
146
- }
147
- },
148
- });
149
- onCleanup(() => {
150
- if (unsubscribe) {
151
- unsubscribe();
152
- unsubscribe = null;
153
- }
154
- });
155
- createComputed(on(() => client().defaultQueryOptions(options()), () => observer.setOptions(client().defaultQueryOptions(options())), {
156
- // Defer because we don't need to trigger on first render
157
- // This only cares about changes to options after the observer is created
158
- defer: true,
159
- }));
160
- createComputed(on(() => state.status, () => {
161
- if (state.isError &&
162
- !state.isFetching &&
163
- shouldThrowError(observer.options.throwOnError, [
164
- state.error,
165
- observer.getCurrentQuery(),
166
- ])) {
167
- throw state.error;
168
- }
169
- }));
170
- const handler = {
171
- get(target, prop) {
172
- const val = queryResource()?.[prop];
173
- return val !== undefined ? val : Reflect.get(target, prop);
174
- },
175
- };
176
- return new Proxy(state, handler);
177
- }
@@ -1,8 +0,0 @@
1
- import { InfiniteQueryObserver } from '@tanstack/query-core';
2
- import { createMemo } from 'solid-js';
3
- import { createBaseQuery } from './createBaseQuery';
4
- export function createInfiniteQuery(options, queryClient) {
5
- return createBaseQuery(createMemo(() => options()),
6
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
7
- InfiniteQueryObserver, queryClient);
8
- }
@@ -1,38 +0,0 @@
1
- import { MutationObserver } from '@tanstack/query-core';
2
- import { createComputed, on, onCleanup } from 'solid-js';
3
- import { createStore } from 'solid-js/store';
4
- import { useQueryClient } from './QueryClientProvider';
5
- import { shouldThrowError } from './utils';
6
- // HOOK
7
- export function createMutation(options, queryClient) {
8
- const client = useQueryClient(queryClient?.());
9
- const observer = new MutationObserver(client, options());
10
- const mutate = (variables, mutateOptions) => {
11
- observer.mutate(variables, mutateOptions).catch(noop);
12
- };
13
- const [state, setState] = createStore({
14
- ...observer.getCurrentResult(),
15
- mutate,
16
- mutateAsync: observer.getCurrentResult().mutate,
17
- });
18
- createComputed(() => {
19
- observer.setOptions(options());
20
- });
21
- createComputed(on(() => state.status, () => {
22
- if (state.isError &&
23
- shouldThrowError(observer.options.throwOnError, [state.error])) {
24
- throw state.error;
25
- }
26
- }));
27
- const unsubscribe = observer.subscribe((result) => {
28
- setState({
29
- ...result,
30
- mutate,
31
- mutateAsync: result.mutate,
32
- });
33
- });
34
- onCleanup(unsubscribe);
35
- return state;
36
- }
37
- // eslint-disable-next-line @typescript-eslint/no-empty-function
38
- function noop() { }
@@ -1,38 +0,0 @@
1
- import { QueriesObserver, notifyManager } from '@tanstack/query-core';
2
- import { createComputed, onCleanup } from 'solid-js';
3
- import { createStore, unwrap } from 'solid-js/store';
4
- import { useQueryClient } from './QueryClientProvider';
5
- export function createQueries(queriesOptions, queryClient) {
6
- const client = useQueryClient(queryClient?.());
7
- const defaultedQueries = queriesOptions().queries.map((options) => {
8
- const defaultedOptions = client.defaultQueryOptions(options);
9
- defaultedOptions._optimisticResults = 'optimistic';
10
- return defaultedOptions;
11
- });
12
- const observer = new QueriesObserver(client, defaultedQueries, queriesOptions().combine
13
- ? {
14
- combine: queriesOptions().combine,
15
- }
16
- : undefined);
17
- // @ts-expect-error - Types issue with solid-js createStore
18
- const [state, setState] = createStore(observer.getOptimisticResult(defaultedQueries)[1]());
19
- const unsubscribe = observer.subscribe((result) => {
20
- notifyManager.batchCalls(() => {
21
- setState(unwrap(result));
22
- })();
23
- });
24
- onCleanup(unsubscribe);
25
- createComputed(() => {
26
- const updatedQueries = queriesOptions().queries.map((options) => {
27
- const defaultedOptions = client.defaultQueryOptions(options);
28
- defaultedOptions._optimisticResults = 'optimistic';
29
- return defaultedOptions;
30
- });
31
- observer.setQueries(updatedQueries, queriesOptions().combine
32
- ? {
33
- combine: queriesOptions().combine,
34
- }
35
- : undefined, { listeners: false });
36
- });
37
- return state;
38
- }
@@ -1,9 +0,0 @@
1
- import { QueryObserver } from '@tanstack/query-core';
2
- import { createMemo } from 'solid-js';
3
- import { createBaseQuery } from './createBaseQuery';
4
- export function queryOptions(options) {
5
- return options;
6
- }
7
- export function createQuery(options, queryClient) {
8
- return createBaseQuery(createMemo(() => options()), QueryObserver, queryClient);
9
- }
@@ -1,15 +0,0 @@
1
- /* istanbul ignore file */
2
- // Side Effects
3
- import './setBatchUpdatesFn';
4
- // Re-export core
5
- export * from '@tanstack/query-core';
6
- // Solid Query
7
- export * from './types';
8
- export { QueryClient } from './QueryClient';
9
- export { createQuery, queryOptions } from './createQuery';
10
- export { QueryClientContext, QueryClientProvider, useQueryClient, } from './QueryClientProvider';
11
- export { useIsFetching } from './useIsFetching';
12
- export { createInfiniteQuery } from './createInfiniteQuery';
13
- export { createMutation } from './createMutation';
14
- export { useIsMutating } from './useIsMutating';
15
- export { createQueries } from './createQueries';
@@ -1,3 +0,0 @@
1
- import { notifyManager } from '@tanstack/query-core';
2
- import { batch } from 'solid-js';
3
- notifyManager.setBatchNotifyFunction(batch);
@@ -1,2 +0,0 @@
1
- /* istanbul ignore file */
2
- export {};
@@ -1,12 +0,0 @@
1
- import { createMemo, createSignal, onCleanup } from 'solid-js';
2
- import { useQueryClient } from './QueryClientProvider';
3
- export function useIsFetching(filters, queryClient) {
4
- const client = createMemo(() => useQueryClient(queryClient?.()));
5
- const queryCache = createMemo(() => client().getQueryCache());
6
- const [fetches, setFetches] = createSignal(client().isFetching(filters?.()));
7
- const unsubscribe = queryCache().subscribe(() => {
8
- setFetches(client().isFetching(filters?.()));
9
- });
10
- onCleanup(unsubscribe);
11
- return fetches;
12
- }
@@ -1,12 +0,0 @@
1
- import { createMemo, createSignal, onCleanup } from 'solid-js';
2
- import { useQueryClient } from './QueryClientProvider';
3
- export function useIsMutating(filters, queryClient) {
4
- const client = createMemo(() => useQueryClient(queryClient?.()));
5
- const mutationCache = createMemo(() => client().getMutationCache());
6
- const [mutations, setMutations] = createSignal(client().isMutating(filters?.()));
7
- const unsubscribe = mutationCache().subscribe((_result) => {
8
- setMutations(client().isMutating(filters?.()));
9
- });
10
- onCleanup(unsubscribe);
11
- return mutations;
12
- }
@@ -1,7 +0,0 @@
1
- export function shouldThrowError(throwError, params) {
2
- // Allow throwError function to override throwing behavior on a per-error basis
3
- if (typeof throwError === 'function') {
4
- return throwError(...params);
5
- }
6
- return !!throwError;
7
- }
@@ -1,29 +0,0 @@
1
- import { QueryClient as QueryCoreClient } from '@tanstack/query-core';
2
- import type { DefaultOptions as CoreDefaultOptions, DefaultError, QueryClientConfig as QueryCoreClientConfig, InfiniteQueryObserverOptions as QueryCoreInfiniteQueryObserverOptions, QueryObserverOptions as QueryCoreObserverOptions, QueryKey } from '@tanstack/query-core';
3
- export interface QueryObserverOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never> extends Omit<QueryCoreObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, 'structuralSharing'> {
4
- /**
5
- * Set this to a reconciliation key to enable reconciliation between query results.
6
- * Set this to `false` to disable reconciliation between query results.
7
- * Set this to a function which accepts the old and new data and returns resolved data of the same type to implement custom reconciliation logic.
8
- * Defaults reconciliation key to `id`.
9
- */
10
- reconcile?: string | false | ((oldData: TData | undefined, newData: TData) => TData);
11
- }
12
- export interface InfiniteQueryObserverOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends Omit<QueryCoreInfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, 'structuralSharing'> {
13
- /**
14
- * Set this to a reconciliation key to enable reconciliation between query results.
15
- * Set this to `false` to disable reconciliation between query results.
16
- * Set this to a function which accepts the old and new data and returns resolved data of the same type to implement custom reconciliation logic.
17
- * Defaults reconciliation key to `id`.
18
- */
19
- reconcile?: string | false | ((oldData: TData | undefined, newData: TData) => TData);
20
- }
21
- export interface DefaultOptions<TError = DefaultError> extends CoreDefaultOptions<TError> {
22
- queries?: QueryObserverOptions<unknown, TError>;
23
- }
24
- export interface QueryClientConfig extends QueryCoreClientConfig {
25
- defaultOptions?: DefaultOptions;
26
- }
27
- export declare class QueryClient extends QueryCoreClient {
28
- constructor(config?: QueryClientConfig);
29
- }
@@ -1,9 +0,0 @@
1
- import type { QueryClient } from './QueryClient';
2
- import type { JSX } from 'solid-js';
3
- export declare const QueryClientContext: import("solid-js").Context<QueryClient>;
4
- export declare const useQueryClient: (queryClient?: QueryClient) => QueryClient;
5
- export type QueryClientProviderProps = {
6
- client: QueryClient;
7
- children?: JSX.Element;
8
- };
9
- export declare const QueryClientProvider: (props: QueryClientProviderProps) => JSX.Element;
@@ -1,5 +0,0 @@
1
- import type { CreateBaseQueryOptions } from './types';
2
- import type { Accessor } from 'solid-js';
3
- import type { QueryClient } from './QueryClient';
4
- import type { QueryKey, QueryObserver, QueryObserverResult } from '@tanstack/query-core';
5
- export declare function createBaseQuery<TQueryFnData, TError, TData, TQueryData, TQueryKey extends QueryKey>(options: Accessor<CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>>, Observer: typeof QueryObserver, queryClient?: Accessor<QueryClient>): QueryObserverResult<TData, TError>;
@@ -1,5 +0,0 @@
1
- import type { DefaultError, InfiniteData, QueryKey } from '@tanstack/query-core';
2
- import type { QueryClient } from './QueryClient';
3
- import type { CreateInfiniteQueryOptions, CreateInfiniteQueryResult } from './types';
4
- import type { Accessor } from 'solid-js';
5
- export declare function createInfiniteQuery<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, queryClient?: Accessor<QueryClient>): CreateInfiniteQueryResult<TData, TError>;
@@ -1,5 +0,0 @@
1
- import type { DefaultError } from '@tanstack/query-core';
2
- import type { QueryClient } from './QueryClient';
3
- import type { CreateMutationOptions, CreateMutationResult } from './types';
4
- import type { Accessor } from 'solid-js';
5
- export declare function createMutation<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown>(options: CreateMutationOptions<TData, TError, TVariables, TContext>, queryClient?: Accessor<QueryClient>): CreateMutationResult<TData, TError, TVariables, TContext>;
@@ -1,53 +0,0 @@
1
- import type { Accessor } from 'solid-js';
2
- import type { QueryClient } from './QueryClient';
3
- import type { DefaultError, QueriesPlaceholderDataFunction, QueryFunction, QueryKey } from '@tanstack/query-core';
4
- import type { CreateQueryResult, SolidQueryOptions } from './types';
5
- type CreateQueryOptionsForCreateQueries<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = Omit<SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'placeholderData'> & {
6
- placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>;
7
- };
8
- type MAXIMUM_DEPTH = 20;
9
- type GetOptions<T> = T extends {
10
- queryFnData: infer TQueryFnData;
11
- error?: infer TError;
12
- data: infer TData;
13
- } ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData> : T extends {
14
- queryFnData: infer TQueryFnData;
15
- error?: infer TError;
16
- } ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError> : T extends {
17
- data: infer TData;
18
- error?: infer TError;
19
- } ? 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 {
20
- queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>;
21
- select: (data: any) => infer TData;
22
- } ? CreateQueryOptionsForCreateQueries<TQueryFnData, Error, TData, TQueryKey> : T extends {
23
- queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>;
24
- } ? CreateQueryOptionsForCreateQueries<TQueryFnData, Error, TQueryFnData, TQueryKey> : CreateQueryOptionsForCreateQueries;
25
- type GetResults<T> = T extends {
26
- queryFnData: any;
27
- error?: infer TError;
28
- data: infer TData;
29
- } ? CreateQueryResult<TData, TError> : T extends {
30
- queryFnData: infer TQueryFnData;
31
- error?: infer TError;
32
- } ? CreateQueryResult<TQueryFnData, TError> : T extends {
33
- data: infer TData;
34
- error?: infer TError;
35
- } ? CreateQueryResult<TData, TError> : T extends [any, infer TError, infer TData] ? CreateQueryResult<TData, TError> : T extends [infer TQueryFnData, infer TError] ? CreateQueryResult<TQueryFnData, TError> : T extends [infer TQueryFnData] ? CreateQueryResult<TQueryFnData> : T extends {
36
- queryFn?: QueryFunction<unknown, any>;
37
- select: (data: any) => infer TData;
38
- } ? CreateQueryResult<TData> : T extends {
39
- queryFn?: QueryFunction<infer TQueryFnData, any>;
40
- } ? CreateQueryResult<TQueryFnData> : CreateQueryResult;
41
- /**
42
- * QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
43
- */
44
- export type QueriesOptions<T extends any[], Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? CreateQueryOptionsForCreateQueries[] : T extends [] ? [] : T extends [infer Head] ? [...Result, GetOptions<Head>] : T extends [infer Head, ...infer Tail] ? QueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]> : unknown[] extends T ? T : T extends CreateQueryOptionsForCreateQueries<infer TQueryFnData, infer TError, infer TData, infer TQueryKey>[] ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>[] : CreateQueryOptionsForCreateQueries[];
45
- /**
46
- * QueriesResults reducer recursively maps type param to results
47
- */
48
- export type QueriesResults<T extends any[], Result extends any[] = [], Depth extends ReadonlyArray<number> = []> = Depth['length'] extends MAXIMUM_DEPTH ? CreateQueryResult[] : 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>[] ? CreateQueryResult<unknown extends TData ? TQueryFnData : TData, unknown extends TError ? DefaultError : TError>[] : CreateQueryResult[];
49
- export declare function createQueries<T extends any[], TCombinedResult = QueriesResults<T>>(queriesOptions: Accessor<{
50
- queries: readonly [...QueriesOptions<T>];
51
- combine?: (result: QueriesResults<T>) => TCombinedResult;
52
- }>, queryClient?: Accessor<QueryClient>): TCombinedResult;
53
- export {};
@@ -1,14 +0,0 @@
1
- import type { DefaultError, QueryKey } from '@tanstack/query-core';
2
- import type { QueryClient } from './QueryClient';
3
- import type { CreateQueryResult, DefinedCreateQueryResult, FunctionedParams, SolidQueryOptions } from './types';
4
- type UndefinedInitialDataOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = FunctionedParams<SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
5
- initialData?: undefined;
6
- }>;
7
- type DefinedInitialDataOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = FunctionedParams<SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
8
- initialData: TQueryFnData | (() => TQueryFnData);
9
- }>;
10
- export declare function queryOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>): UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>;
11
- export declare function queryOptions<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>): DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>;
12
- export declare function createQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: () => QueryClient): CreateQueryResult<TData, TError>;
13
- export declare function createQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: () => QueryClient): DefinedCreateQueryResult<TData, TError>;
14
- export {};
@@ -1,13 +0,0 @@
1
- import './setBatchUpdatesFn';
2
- export * from '@tanstack/query-core';
3
- export * from './types';
4
- export { QueryClient } from './QueryClient';
5
- export type { QueryObserverOptions, DefaultOptions, QueryClientConfig, InfiniteQueryObserverOptions, } from './QueryClient';
6
- export { createQuery, queryOptions } from './createQuery';
7
- export { QueryClientContext, QueryClientProvider, useQueryClient, } from './QueryClientProvider';
8
- export type { QueryClientProviderProps } from './QueryClientProvider';
9
- export { useIsFetching } from './useIsFetching';
10
- export { createInfiniteQuery } from './createInfiniteQuery';
11
- export { createMutation } from './createMutation';
12
- export { useIsMutating } from './useIsMutating';
13
- export { createQueries } from './createQueries';
@@ -1 +0,0 @@
1
- export {};
@@ -1,34 +0,0 @@
1
- import type { DefaultError, DefinedQueryObserverResult, InfiniteQueryObserverResult, MutateFunction, MutationObserverOptions, MutationObserverResult, QueryKey, QueryObserverResult, WithRequired } from '@tanstack/query-core';
2
- import type { InfiniteQueryObserverOptions, QueryObserverOptions } from './QueryClient';
3
- export type FunctionedParams<T> = () => T;
4
- export interface CreateBaseQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends WithRequired<QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>, 'queryKey'> {
5
- deferStream?: boolean;
6
- }
7
- export interface SolidQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends WithRequired<CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, 'queryKey'> {
8
- }
9
- export type CreateQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = FunctionedParams<SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey>>;
10
- export type CreateBaseQueryResult<TData = unknown, TError = DefaultError> = QueryObserverResult<TData, TError>;
11
- export type CreateQueryResult<TData = unknown, TError = DefaultError> = CreateBaseQueryResult<TData, TError>;
12
- export type DefinedCreateBaseQueryResult<TData = unknown, TError = DefaultError> = DefinedQueryObserverResult<TData, TError>;
13
- export type DefinedCreateQueryResult<TData = unknown, TError = DefaultError> = DefinedCreateBaseQueryResult<TData, TError>;
14
- export interface SolidInfiniteQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends Omit<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, 'queryKey'> {
15
- queryKey: TQueryKey;
16
- deferStream?: boolean;
17
- }
18
- export type CreateInfiniteQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = FunctionedParams<SolidInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam>>;
19
- export type CreateInfiniteQueryResult<TData = unknown, TError = DefaultError> = InfiniteQueryObserverResult<TData, TError>;
20
- export interface SolidMutationOptions<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> extends Omit<MutationObserverOptions<TData, TError, TVariables, TContext>, '_defaulted' | 'variables'> {
21
- }
22
- export type CreateMutationOptions<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> = FunctionedParams<SolidMutationOptions<TData, TError, TVariables, TContext>>;
23
- export type CreateMutateFunction<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> = (...args: Parameters<MutateFunction<TData, TError, TVariables, TContext>>) => void;
24
- export type CreateMutateAsyncFunction<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> = MutateFunction<TData, TError, TVariables, TContext>;
25
- export type CreateBaseMutationResult<TData = unknown, TError = DefaultError, TVariables = unknown, TContext = unknown> = Override<MutationObserverResult<TData, TError, TVariables, TContext>, {
26
- mutate: CreateMutateFunction<TData, TError, TVariables, TContext>;
27
- }> & {
28
- mutateAsync: CreateMutateAsyncFunction<TData, TError, TVariables, TContext>;
29
- };
30
- export type CreateMutationResult<TData = unknown, TError = DefaultError, TVariables = unknown, TContext = unknown> = CreateBaseMutationResult<TData, TError, TVariables, TContext>;
31
- type Override<A, B> = {
32
- [K in keyof A]: K extends keyof B ? B[K] : A[K];
33
- };
34
- export {};
@@ -1,4 +0,0 @@
1
- import type { QueryFilters } from '@tanstack/query-core';
2
- import type { QueryClient } from './QueryClient';
3
- import type { Accessor } from 'solid-js';
4
- export declare function useIsFetching(filters?: Accessor<QueryFilters>, queryClient?: Accessor<QueryClient>): Accessor<number>;
@@ -1,4 +0,0 @@
1
- import type { MutationFilters } from '@tanstack/query-core';
2
- import type { QueryClient } from './QueryClient';
3
- import type { Accessor } from 'solid-js';
4
- export declare function useIsMutating(filters?: Accessor<MutationFilters>, queryClient?: Accessor<QueryClient>): Accessor<number>;
@@ -1 +0,0 @@
1
- export declare function shouldThrowError<T extends (...args: any[]) => boolean>(throwError: boolean | T | undefined, params: Parameters<T>): boolean;