@tanstack/solid-query 5.0.0-alpha.20 → 5.0.0-alpha.22
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/cjs/index.js +3 -2
- package/build/cjs/index.js.map +1 -1
- package/build/esm/index.js +3 -2
- package/build/esm/index.js.map +1 -1
- package/build/source/__tests__/createQueries.test.jsx +2 -73
- package/build/source/__tests__/createQuery.test.jsx +0 -251
- package/build/source/__tests__/suspense.test.jsx +0 -62
- package/build/source/createBaseQuery.js +3 -2
- package/build/umd/index.js +1 -1
- package/build/umd/index.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/createQueries.test.tsx +2 -73
- package/src/__tests__/createQuery.test.tsx +0 -323
- package/src/__tests__/suspense.test.tsx +0 -83
- package/src/createBaseQuery.ts +3 -2
package/build/cjs/index.js
CHANGED
|
@@ -93,8 +93,9 @@ function createBaseQuery(options, Observer, queryClient) {
|
|
|
93
93
|
// copying over the missing properties from state in order to support hydration
|
|
94
94
|
dataUpdateCount: query.state.dataUpdateCount,
|
|
95
95
|
fetchFailureCount: query.state.fetchFailureCount,
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
// Removing these properties since they might not be serializable
|
|
97
|
+
// fetchFailureReason: query.state.fetchFailureReason,
|
|
98
|
+
// fetchMeta: query.state.fetchMeta,
|
|
98
99
|
isInvalidated: query.state.isInvalidated
|
|
99
100
|
};
|
|
100
101
|
if (unwrappedResult.isError) {
|
package/build/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/setBatchUpdatesFn.ts","../../src/QueryClient.ts","../../src/QueryClientProvider.tsx","../../src/utils.ts","../../src/createBaseQuery.ts","../../src/createQuery.ts","../../src/useIsFetching.ts","../../src/createInfiniteQuery.ts","../../src/createMutation.ts","../../src/useIsMutating.ts","../../src/createQueries.ts"],"sourcesContent":["import { notifyManager } from '@tanstack/query-core'\nimport { batch } from 'solid-js'\n\nnotifyManager.setBatchNotifyFunction(batch)\n","import type {\n QueryClientConfig as QueryCoreClientConfig,\n DefaultOptions as CoreDefaultOptions,\n QueryObserverOptions as QueryCoreObserverOptions,\n InfiniteQueryObserverOptions as QueryCoreInfiniteQueryObserverOptions,\n DefaultError,\n QueryKey,\n} from '@tanstack/query-core'\nimport { QueryClient as QueryCoreClient } from '@tanstack/query-core'\n\nexport interface QueryObserverOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n> extends Omit<\n QueryCoreObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n 'structuralSharing'\n > {\n /**\n * Set this to a reconciliation key to enable reconciliation between query results.\n * Set this to `false` to disable reconciliation between query results.\n * 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.\n * Defaults reconciliation key to `id`.\n */\n reconcile?:\n | string\n | false\n | ((oldData: TData | undefined, newData: TData) => TData)\n}\n\nexport interface InfiniteQueryObserverOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> extends Omit<\n QueryCoreInfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n 'structuralSharing'\n > {\n /**\n * Set this to a reconciliation key to enable reconciliation between query results.\n * Set this to `false` to disable reconciliation between query results.\n * 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.\n * Defaults reconciliation key to `id`.\n */\n reconcile?:\n | string\n | false\n | ((oldData: TData | undefined, newData: TData) => TData)\n}\n\nexport interface DefaultOptions<TError = DefaultError>\n extends CoreDefaultOptions<TError> {\n queries?: QueryObserverOptions<unknown, TError>\n}\n\nexport interface QueryClientConfig extends QueryCoreClientConfig {\n defaultOptions?: DefaultOptions\n}\n\nexport class QueryClient extends QueryCoreClient {\n constructor(config: QueryClientConfig = {}) {\n super(config)\n }\n}\n","import type { QueryClient } from './QueryClient'\nimport type { JSX } from 'solid-js'\nimport { createContext, useContext, onMount, onCleanup } from 'solid-js'\n\nexport const QueryClientContext = createContext<QueryClient | undefined>(\n undefined,\n)\n\nexport const useQueryClient = (queryClient?: QueryClient) => {\n const client = useContext(QueryClientContext)\n\n if (queryClient) {\n return queryClient\n }\n\n if (!client) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one')\n }\n\n return client\n}\n\nexport type QueryClientProviderProps = {\n client: QueryClient\n children?: JSX.Element\n}\n\nexport const QueryClientProvider = (\n props: QueryClientProviderProps,\n): JSX.Element => {\n onMount(() => {\n props.client.mount()\n })\n onCleanup(() => props.client.unmount())\n\n return (\n <QueryClientContext.Provider value={props.client}>\n {props.children}\n </QueryClientContext.Provider>\n )\n}\n","export function shouldThrowError<T extends (...args: any[]) => boolean>(\n throwError: boolean | T | undefined,\n params: Parameters<T>,\n): boolean {\n // Allow throwError function to override throwing behavior on a per-error basis\n if (typeof throwError === 'function') {\n return throwError(...params)\n }\n\n return !!throwError\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n// Had to disable the lint rule because isServer type is defined as false\n// in solid-js/web package. I'll create a GitHub issue with them to see\n// why that happens.\nimport type {\n QueryKey,\n QueryObserver,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport { hydrate } from '@tanstack/query-core'\nimport { notifyManager } from '@tanstack/query-core'\nimport type { Accessor } from 'solid-js'\nimport { isServer } from 'solid-js/web'\nimport {\n createComputed,\n createMemo,\n createResource,\n on,\n onCleanup,\n} from 'solid-js'\nimport { createStore, reconcile, unwrap } from 'solid-js/store'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { CreateBaseQueryOptions } from './types'\nimport { shouldThrowError } from './utils'\n\nfunction reconcileFn<TData, TError>(\n store: QueryObserverResult<TData, TError>,\n result: QueryObserverResult<TData, TError>,\n reconcileOption:\n | string\n | false\n | ((oldData: TData | undefined, newData: TData) => TData),\n): QueryObserverResult<TData, TError> {\n if (reconcileOption === false) return result\n if (typeof reconcileOption === 'function') {\n const newData = reconcileOption(store.data, result.data as TData)\n return { ...result, data: newData } as typeof result\n }\n const newData = reconcile(result.data, { key: reconcileOption })(store.data)\n return { ...result, data: newData } as typeof result\n}\n\n// Base Query Function that is used to create the query.\nexport function createBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n options: Accessor<\n CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n >,\n Observer: typeof QueryObserver,\n queryClient?: Accessor<QueryClient>,\n) {\n const client = createMemo(() => useQueryClient(queryClient?.()))\n\n const defaultedOptions = client().defaultQueryOptions(options())\n defaultedOptions._optimisticResults = 'optimistic'\n defaultedOptions.structuralSharing = false\n if (isServer) {\n defaultedOptions.retry = false\n defaultedOptions.throwErrors = true\n }\n const observer = new Observer(client(), defaultedOptions)\n\n const [state, setState] = createStore<QueryObserverResult<TData, TError>>(\n observer.getOptimisticResult(defaultedOptions),\n )\n\n const createServerSubscriber = (\n resolve: (\n data:\n | QueryObserverResult<TData, TError>\n | PromiseLike<QueryObserverResult<TData, TError> | undefined>\n | undefined,\n ) => void,\n reject: (reason?: any) => void,\n ) => {\n return observer.subscribe((result) => {\n notifyManager.batchCalls(() => {\n const query = observer.getCurrentQuery()\n const { refetch, ...rest } = unwrap(result)\n const unwrappedResult = {\n ...rest,\n\n // hydrate() expects a QueryState object, which is similar but not\n // quite the same as a QueryObserverResult object. Thus, for now, we're\n // copying over the missing properties from state in order to support hydration\n dataUpdateCount: query.state.dataUpdateCount,\n fetchFailureCount: query.state.fetchFailureCount,\n fetchFailureReason: query.state.fetchFailureReason,\n fetchMeta: query.state.fetchMeta,\n isInvalidated: query.state.isInvalidated,\n }\n\n if (unwrappedResult.isError) {\n if (process.env['NODE_ENV'] === 'development') {\n console.error(unwrappedResult.error)\n }\n reject(unwrappedResult.error)\n }\n if (unwrappedResult.isSuccess) {\n // Use of any here is fine\n // We cannot include refetch since it is not serializable\n resolve(unwrappedResult as any)\n }\n })()\n })\n }\n\n const createClientSubscriber = () => {\n return observer.subscribe((result) => {\n notifyManager.batchCalls(() => {\n // @ts-expect-error - This will error because the reconcile option does not\n // exist on the query-core QueryObserverResult type\n const reconcileOptions = observer.options.reconcile\n // If the query has data we dont suspend but instead mutate the resource\n // This could happen when placeholderData/initialData is defined\n if (queryResource()?.data && result.data && !queryResource.loading) {\n setState((store) => {\n return reconcileFn(\n store,\n result,\n reconcileOptions === undefined ? 'id' : reconcileOptions,\n )\n })\n mutate(state)\n } else {\n setState((store) => {\n return reconcileFn(\n store,\n result,\n reconcileOptions === undefined ? 'id' : reconcileOptions,\n )\n })\n refetch()\n }\n })()\n })\n }\n\n /**\n * Unsubscribe is set lazily, so that we can subscribe after hydration when needed.\n */\n let unsubscribe: (() => void) | null = null\n\n const [queryResource, { refetch, mutate }] = createResource<\n QueryObserverResult<TData, TError> | undefined\n >(\n () => {\n return new Promise((resolve, reject) => {\n if (isServer) {\n unsubscribe = createServerSubscriber(resolve, reject)\n } else {\n if (!unsubscribe) {\n unsubscribe = createClientSubscriber()\n }\n }\n if (!state.isLoading) {\n resolve(state)\n }\n })\n },\n {\n initialValue: state,\n\n // If initialData is provided, we resolve the resource immediately\n ssrLoadFrom: options().initialData ? 'initial' : 'server',\n\n get deferStream() {\n return options().deferStream\n },\n\n /**\n * If this resource was populated on the server (either sync render, or streamed in over time), onHydrated\n * will be called. This is the point at which we can hydrate the query cache state, and setup the query subscriber.\n *\n * Leveraging onHydrated allows us to plug into the async and streaming support that solidjs resources already support.\n *\n * Note that this is only invoked on the client, for queries that were originally run on the server.\n */\n onHydrated(_k, info) {\n if (info.value) {\n hydrate(client(), {\n queries: [\n {\n queryKey: defaultedOptions.queryKey,\n queryHash: defaultedOptions.queryHash,\n state: info.value,\n },\n ],\n })\n }\n\n if (!unsubscribe) {\n /**\n * Do not refetch query on mount if query was fetched on server,\n * even if `staleTime` is not set.\n */\n const newOptions = { ...defaultedOptions }\n if (defaultedOptions.staleTime || !defaultedOptions.initialData) {\n newOptions.refetchOnMount = false\n }\n // Setting the options as an immutable object to prevent\n // wonky behavior with observer subscriptions\n observer.setOptions(newOptions)\n setState(observer.getOptimisticResult(newOptions))\n unsubscribe = createClientSubscriber()\n }\n },\n },\n )\n\n onCleanup(() => {\n if (unsubscribe) {\n unsubscribe()\n unsubscribe = null\n }\n })\n\n createComputed(\n on(\n () => client().defaultQueryOptions(options()),\n () => observer.setOptions(client().defaultQueryOptions(options())),\n {\n // Defer because we don't need to trigger on first render\n // This only cares about changes to options after the observer is created\n defer: true,\n },\n ),\n )\n\n createComputed(\n on(\n () => state.status,\n () => {\n if (\n state.isError &&\n !state.isFetching &&\n shouldThrowError(observer.options.throwErrors, [\n state.error,\n observer.getCurrentQuery(),\n ])\n ) {\n throw state.error\n }\n },\n ),\n )\n\n const handler = {\n get(\n target: QueryObserverResult<TData, TError>,\n prop: keyof QueryObserverResult<TData, TError>,\n ): any {\n const val = queryResource()?.[prop]\n return val !== undefined ? val : Reflect.get(target, prop)\n },\n }\n\n return new Proxy(state, handler)\n}\n","import type { QueryKey, DefaultError } from '@tanstack/query-core'\nimport { QueryObserver } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport type { Accessor } from 'solid-js'\nimport { createMemo } from 'solid-js'\nimport { createBaseQuery } from './createBaseQuery'\nimport type {\n CreateQueryOptions,\n CreateQueryResult,\n DefinedCreateQueryResult,\n FunctionedParams,\n SolidQueryOptions,\n} from './types'\n\ntype UndefinedInitialDataOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = FunctionedParams<\n SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {\n initialData?: undefined\n }\n>\n\ntype DefinedInitialDataOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = FunctionedParams<\n SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {\n initialData: TQueryFnData | (() => TQueryFnData)\n }\n>\n\nexport function createQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: () => QueryClient,\n): CreateQueryResult<TData, TError>\n\nexport function createQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: () => QueryClient,\n): DefinedCreateQueryResult<TData, TError>\nexport function createQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: Accessor<QueryClient>,\n) {\n return createBaseQuery(\n createMemo(() => options()),\n QueryObserver,\n queryClient,\n )\n}\n","import type { QueryFilters } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport type { Accessor } from 'solid-js'\nimport { createMemo, createSignal, onCleanup } from 'solid-js'\nimport { useQueryClient } from './QueryClientProvider'\n\nexport function useIsFetching(\n filters?: Accessor<QueryFilters>,\n queryClient?: Accessor<QueryClient>,\n): Accessor<number> {\n const client = createMemo(() => useQueryClient(queryClient?.()))\n const queryCache = createMemo(() => client().getQueryCache())\n\n const [fetches, setFetches] = createSignal(client().isFetching(filters?.()))\n\n const unsubscribe = queryCache().subscribe(() => {\n setFetches(client().isFetching(filters?.()))\n })\n\n onCleanup(unsubscribe)\n\n return fetches\n}\n","import type {\n QueryObserver,\n QueryKey,\n DefaultError,\n InfiniteData,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport { InfiniteQueryObserver } from '@tanstack/query-core'\nimport type {\n CreateInfiniteQueryOptions,\n CreateInfiniteQueryResult,\n} from './types'\nimport { createBaseQuery } from './createBaseQuery'\nimport { createMemo } from 'solid-js'\nimport type { Accessor } from 'solid-js'\n\nexport function createInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: Accessor<QueryClient>,\n): CreateInfiniteQueryResult<TData, TError> {\n return createBaseQuery(\n createMemo(() => options()),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n InfiniteQueryObserver as typeof QueryObserver,\n queryClient,\n ) as CreateInfiniteQueryResult<TData, TError>\n}\n","import type { DefaultError } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n CreateMutateFunction,\n CreateMutationOptions,\n CreateMutationResult,\n} from './types'\nimport type { Accessor } from 'solid-js'\nimport { createComputed, onCleanup, on } from 'solid-js'\nimport { createStore } from 'solid-js/store'\nimport { shouldThrowError } from './utils'\n\n// HOOK\nexport function createMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n options: CreateMutationOptions<TData, TError, TVariables, TContext>,\n queryClient?: Accessor<QueryClient>,\n): CreateMutationResult<TData, TError, TVariables, TContext> {\n const client = useQueryClient(queryClient?.())\n\n const observer = new MutationObserver<TData, TError, TVariables, TContext>(\n client,\n options(),\n )\n\n const mutate: CreateMutateFunction<TData, TError, TVariables, TContext> = (\n variables,\n mutateOptions,\n ) => {\n observer.mutate(variables, mutateOptions).catch(noop)\n }\n\n const [state, setState] = createStore<\n CreateMutationResult<TData, TError, TVariables, TContext>\n >({\n ...observer.getCurrentResult(),\n mutate,\n mutateAsync: observer.getCurrentResult().mutate,\n })\n\n createComputed(() => {\n observer.setOptions(options())\n })\n\n createComputed(\n on(\n () => state.status,\n () => {\n if (\n state.isError &&\n shouldThrowError(observer.options.throwErrors, [state.error])\n ) {\n throw state.error\n }\n },\n ),\n )\n\n const unsubscribe = observer.subscribe((result) => {\n setState({\n ...result,\n mutate,\n mutateAsync: result.mutate,\n })\n })\n\n onCleanup(unsubscribe)\n\n return state\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n","import type { MutationFilters } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { Accessor } from 'solid-js'\nimport { createSignal, onCleanup, createMemo } from 'solid-js'\n\nexport function useIsMutating(\n filters?: Accessor<MutationFilters>,\n queryClient?: Accessor<QueryClient>,\n): Accessor<number> {\n const client = createMemo(() => useQueryClient(queryClient?.()))\n const mutationCache = createMemo(() => client().getMutationCache())\n\n const [mutations, setMutations] = createSignal(\n client().isMutating(filters?.()),\n )\n\n const unsubscribe = mutationCache().subscribe((_result) => {\n setMutations(client().isMutating(filters?.()))\n })\n\n onCleanup(unsubscribe)\n\n return mutations\n}\n","import type {\n QueriesPlaceholderDataFunction,\n QueryFunction,\n QueryKey,\n DefaultError,\n} from '@tanstack/query-core'\nimport { notifyManager, QueriesObserver } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport type { Accessor } from 'solid-js'\nimport { createComputed, onCleanup, onMount } from 'solid-js'\nimport { createStore, unwrap } from 'solid-js/store'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { CreateQueryResult, SolidQueryOptions } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype CreateQueryOptionsForCreateQueries<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = Omit<\n SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? CreateQueryOptionsForCreateQueries<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? CreateQueryOptionsForCreateQueries<\n TQueryFnData,\n Error,\n TQueryFnData,\n TQueryKey\n >\n : // Fallback\n CreateQueryOptionsForCreateQueries\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? CreateQueryResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? CreateQueryResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? CreateQueryResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? CreateQueryResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? CreateQueryResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? CreateQueryResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? CreateQueryResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? CreateQueryResult<TQueryFnData>\n : // Fallback\n CreateQueryResult\n\n/**\n * QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type QueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? CreateQueryOptionsForCreateQueries[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? QueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends CreateQueryOptionsForCreateQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n CreateQueryOptionsForCreateQueries[]\n\n/**\n * QueriesResults reducer recursively maps type param to results\n */\nexport type QueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? CreateQueryResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? QueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends CreateQueryOptionsForCreateQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n CreateQueryResult<\n unknown extends TData ? TQueryFnData : TData,\n unknown extends TError ? DefaultError : TError\n >[]\n : // Fallback\n CreateQueryResult[]\n\nexport function createQueries<T extends any[]>(\n queriesOptions: Accessor<{\n queries: readonly [...QueriesOptions<T>]\n }>,\n queryClient?: Accessor<QueryClient>,\n): QueriesResults<T> {\n const client = useQueryClient(queryClient?.())\n\n const defaultedQueries = queriesOptions().queries.map((options) => {\n const defaultedOptions = client.defaultQueryOptions(options)\n defaultedOptions._optimisticResults = 'optimistic'\n return defaultedOptions\n })\n\n const observer = new QueriesObserver(client, defaultedQueries)\n\n const [state, setState] = createStore(\n observer.getOptimisticResult(defaultedQueries),\n )\n\n const unsubscribe = observer.subscribe((result) => {\n notifyManager.batchCalls(() => {\n setState(unwrap(result))\n })()\n })\n\n onCleanup(unsubscribe)\n\n onMount(() => {\n observer.setQueries(defaultedQueries, { listeners: false })\n })\n\n createComputed(() => {\n const updatedQueries = queriesOptions().queries.map((options) => {\n const defaultedOptions = client.defaultQueryOptions(options)\n defaultedOptions._optimisticResults = 'optimistic'\n return defaultedOptions\n })\n observer.setQueries(updatedQueries)\n })\n\n return state as QueriesResults<T>\n}\n"],"names":["notifyManager","setBatchNotifyFunction","batch","QueryClient","QueryCoreClient","constructor","config","QueryClientContext","createContext","undefined","useQueryClient","queryClient","client","useContext","Error","QueryClientProvider","props","onMount","mount","onCleanup","unmount","_$createComponent","children","shouldThrowError","throwError","params","reconcileFn","store","result","reconcileOption","newData","data","reconcile","key","createBaseQuery","options","Observer","createMemo","defaultedOptions","defaultQueryOptions","_optimisticResults","structuralSharing","isServer","retry","throwErrors","observer","state","setState","createStore","getOptimisticResult","createServerSubscriber","resolve","reject","subscribe","batchCalls","query","getCurrentQuery","refetch","rest","unwrap","unwrappedResult","dataUpdateCount","fetchFailureCount","fetchFailureReason","fetchMeta","isInvalidated","isError","process","env","console","error","isSuccess","createClientSubscriber","reconcileOptions","queryResource","loading","mutate","unsubscribe","createResource","Promise","isLoading","initialValue","ssrLoadFrom","initialData","deferStream","onHydrated","_k","info","value","hydrate","queries","queryKey","queryHash","newOptions","staleTime","refetchOnMount","setOptions","createComputed","on","defer","status","isFetching","handler","get","target","prop","val","Reflect","Proxy","createQuery","QueryObserver","useIsFetching","filters","queryCache","getQueryCache","fetches","setFetches","createSignal","createInfiniteQuery","InfiniteQueryObserver","createMutation","MutationObserver","variables","mutateOptions","catch","noop","getCurrentResult","mutateAsync","useIsMutating","mutationCache","getMutationCache","mutations","setMutations","isMutating","_result","createQueries","queriesOptions","defaultedQueries","map","QueriesObserver","setQueries","listeners","updatedQueries"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/setBatchUpdatesFn.ts","../../src/QueryClient.ts","../../src/QueryClientProvider.tsx","../../src/utils.ts","../../src/createBaseQuery.ts","../../src/createQuery.ts","../../src/useIsFetching.ts","../../src/createInfiniteQuery.ts","../../src/createMutation.ts","../../src/useIsMutating.ts","../../src/createQueries.ts"],"sourcesContent":["import { notifyManager } from '@tanstack/query-core'\nimport { batch } from 'solid-js'\n\nnotifyManager.setBatchNotifyFunction(batch)\n","import type {\n QueryClientConfig as QueryCoreClientConfig,\n DefaultOptions as CoreDefaultOptions,\n QueryObserverOptions as QueryCoreObserverOptions,\n InfiniteQueryObserverOptions as QueryCoreInfiniteQueryObserverOptions,\n DefaultError,\n QueryKey,\n} from '@tanstack/query-core'\nimport { QueryClient as QueryCoreClient } from '@tanstack/query-core'\n\nexport interface QueryObserverOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n> extends Omit<\n QueryCoreObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n 'structuralSharing'\n > {\n /**\n * Set this to a reconciliation key to enable reconciliation between query results.\n * Set this to `false` to disable reconciliation between query results.\n * 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.\n * Defaults reconciliation key to `id`.\n */\n reconcile?:\n | string\n | false\n | ((oldData: TData | undefined, newData: TData) => TData)\n}\n\nexport interface InfiniteQueryObserverOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> extends Omit<\n QueryCoreInfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n 'structuralSharing'\n > {\n /**\n * Set this to a reconciliation key to enable reconciliation between query results.\n * Set this to `false` to disable reconciliation between query results.\n * 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.\n * Defaults reconciliation key to `id`.\n */\n reconcile?:\n | string\n | false\n | ((oldData: TData | undefined, newData: TData) => TData)\n}\n\nexport interface DefaultOptions<TError = DefaultError>\n extends CoreDefaultOptions<TError> {\n queries?: QueryObserverOptions<unknown, TError>\n}\n\nexport interface QueryClientConfig extends QueryCoreClientConfig {\n defaultOptions?: DefaultOptions\n}\n\nexport class QueryClient extends QueryCoreClient {\n constructor(config: QueryClientConfig = {}) {\n super(config)\n }\n}\n","import type { QueryClient } from './QueryClient'\nimport type { JSX } from 'solid-js'\nimport { createContext, useContext, onMount, onCleanup } from 'solid-js'\n\nexport const QueryClientContext = createContext<QueryClient | undefined>(\n undefined,\n)\n\nexport const useQueryClient = (queryClient?: QueryClient) => {\n const client = useContext(QueryClientContext)\n\n if (queryClient) {\n return queryClient\n }\n\n if (!client) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one')\n }\n\n return client\n}\n\nexport type QueryClientProviderProps = {\n client: QueryClient\n children?: JSX.Element\n}\n\nexport const QueryClientProvider = (\n props: QueryClientProviderProps,\n): JSX.Element => {\n onMount(() => {\n props.client.mount()\n })\n onCleanup(() => props.client.unmount())\n\n return (\n <QueryClientContext.Provider value={props.client}>\n {props.children}\n </QueryClientContext.Provider>\n )\n}\n","export function shouldThrowError<T extends (...args: any[]) => boolean>(\n throwError: boolean | T | undefined,\n params: Parameters<T>,\n): boolean {\n // Allow throwError function to override throwing behavior on a per-error basis\n if (typeof throwError === 'function') {\n return throwError(...params)\n }\n\n return !!throwError\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n// Had to disable the lint rule because isServer type is defined as false\n// in solid-js/web package. I'll create a GitHub issue with them to see\n// why that happens.\nimport type {\n QueryKey,\n QueryObserver,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport { hydrate } from '@tanstack/query-core'\nimport { notifyManager } from '@tanstack/query-core'\nimport type { Accessor } from 'solid-js'\nimport { isServer } from 'solid-js/web'\nimport {\n createComputed,\n createMemo,\n createResource,\n on,\n onCleanup,\n} from 'solid-js'\nimport { createStore, reconcile, unwrap } from 'solid-js/store'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { CreateBaseQueryOptions } from './types'\nimport { shouldThrowError } from './utils'\n\nfunction reconcileFn<TData, TError>(\n store: QueryObserverResult<TData, TError>,\n result: QueryObserverResult<TData, TError>,\n reconcileOption:\n | string\n | false\n | ((oldData: TData | undefined, newData: TData) => TData),\n): QueryObserverResult<TData, TError> {\n if (reconcileOption === false) return result\n if (typeof reconcileOption === 'function') {\n const newData = reconcileOption(store.data, result.data as TData)\n return { ...result, data: newData } as typeof result\n }\n const newData = reconcile(result.data, { key: reconcileOption })(store.data)\n return { ...result, data: newData } as typeof result\n}\n\n// Base Query Function that is used to create the query.\nexport function createBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n options: Accessor<\n CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n >,\n Observer: typeof QueryObserver,\n queryClient?: Accessor<QueryClient>,\n) {\n const client = createMemo(() => useQueryClient(queryClient?.()))\n\n const defaultedOptions = client().defaultQueryOptions(options())\n defaultedOptions._optimisticResults = 'optimistic'\n defaultedOptions.structuralSharing = false\n if (isServer) {\n defaultedOptions.retry = false\n defaultedOptions.throwErrors = true\n }\n const observer = new Observer(client(), defaultedOptions)\n\n const [state, setState] = createStore<QueryObserverResult<TData, TError>>(\n observer.getOptimisticResult(defaultedOptions),\n )\n\n const createServerSubscriber = (\n resolve: (\n data:\n | QueryObserverResult<TData, TError>\n | PromiseLike<QueryObserverResult<TData, TError> | undefined>\n | undefined,\n ) => void,\n reject: (reason?: any) => void,\n ) => {\n return observer.subscribe((result) => {\n notifyManager.batchCalls(() => {\n const query = observer.getCurrentQuery()\n const { refetch, ...rest } = unwrap(result)\n const unwrappedResult = {\n ...rest,\n\n // hydrate() expects a QueryState object, which is similar but not\n // quite the same as a QueryObserverResult object. Thus, for now, we're\n // copying over the missing properties from state in order to support hydration\n dataUpdateCount: query.state.dataUpdateCount,\n fetchFailureCount: query.state.fetchFailureCount,\n // Removing these properties since they might not be serializable\n // fetchFailureReason: query.state.fetchFailureReason,\n // fetchMeta: query.state.fetchMeta,\n isInvalidated: query.state.isInvalidated,\n }\n\n if (unwrappedResult.isError) {\n if (process.env['NODE_ENV'] === 'development') {\n console.error(unwrappedResult.error)\n }\n reject(unwrappedResult.error)\n }\n if (unwrappedResult.isSuccess) {\n // Use of any here is fine\n // We cannot include refetch since it is not serializable\n resolve(unwrappedResult as any)\n }\n })()\n })\n }\n\n const createClientSubscriber = () => {\n return observer.subscribe((result) => {\n notifyManager.batchCalls(() => {\n // @ts-expect-error - This will error because the reconcile option does not\n // exist on the query-core QueryObserverResult type\n const reconcileOptions = observer.options.reconcile\n // If the query has data we dont suspend but instead mutate the resource\n // This could happen when placeholderData/initialData is defined\n if (queryResource()?.data && result.data && !queryResource.loading) {\n setState((store) => {\n return reconcileFn(\n store,\n result,\n reconcileOptions === undefined ? 'id' : reconcileOptions,\n )\n })\n mutate(state)\n } else {\n setState((store) => {\n return reconcileFn(\n store,\n result,\n reconcileOptions === undefined ? 'id' : reconcileOptions,\n )\n })\n refetch()\n }\n })()\n })\n }\n\n /**\n * Unsubscribe is set lazily, so that we can subscribe after hydration when needed.\n */\n let unsubscribe: (() => void) | null = null\n\n const [queryResource, { refetch, mutate }] = createResource<\n QueryObserverResult<TData, TError> | undefined\n >(\n () => {\n return new Promise((resolve, reject) => {\n if (isServer) {\n unsubscribe = createServerSubscriber(resolve, reject)\n } else {\n if (!unsubscribe) {\n unsubscribe = createClientSubscriber()\n }\n }\n if (!state.isLoading) {\n resolve(state)\n }\n })\n },\n {\n initialValue: state,\n\n // If initialData is provided, we resolve the resource immediately\n ssrLoadFrom: options().initialData ? 'initial' : 'server',\n\n get deferStream() {\n return options().deferStream\n },\n\n /**\n * If this resource was populated on the server (either sync render, or streamed in over time), onHydrated\n * will be called. This is the point at which we can hydrate the query cache state, and setup the query subscriber.\n *\n * Leveraging onHydrated allows us to plug into the async and streaming support that solidjs resources already support.\n *\n * Note that this is only invoked on the client, for queries that were originally run on the server.\n */\n onHydrated(_k, info) {\n if (info.value) {\n hydrate(client(), {\n queries: [\n {\n queryKey: defaultedOptions.queryKey,\n queryHash: defaultedOptions.queryHash,\n state: info.value,\n },\n ],\n })\n }\n\n if (!unsubscribe) {\n /**\n * Do not refetch query on mount if query was fetched on server,\n * even if `staleTime` is not set.\n */\n const newOptions = { ...defaultedOptions }\n if (defaultedOptions.staleTime || !defaultedOptions.initialData) {\n newOptions.refetchOnMount = false\n }\n // Setting the options as an immutable object to prevent\n // wonky behavior with observer subscriptions\n observer.setOptions(newOptions)\n setState(observer.getOptimisticResult(newOptions))\n unsubscribe = createClientSubscriber()\n }\n },\n },\n )\n\n onCleanup(() => {\n if (unsubscribe) {\n unsubscribe()\n unsubscribe = null\n }\n })\n\n createComputed(\n on(\n () => client().defaultQueryOptions(options()),\n () => observer.setOptions(client().defaultQueryOptions(options())),\n {\n // Defer because we don't need to trigger on first render\n // This only cares about changes to options after the observer is created\n defer: true,\n },\n ),\n )\n\n createComputed(\n on(\n () => state.status,\n () => {\n if (\n state.isError &&\n !state.isFetching &&\n shouldThrowError(observer.options.throwErrors, [\n state.error,\n observer.getCurrentQuery(),\n ])\n ) {\n throw state.error\n }\n },\n ),\n )\n\n const handler = {\n get(\n target: QueryObserverResult<TData, TError>,\n prop: keyof QueryObserverResult<TData, TError>,\n ): any {\n const val = queryResource()?.[prop]\n return val !== undefined ? val : Reflect.get(target, prop)\n },\n }\n\n return new Proxy(state, handler)\n}\n","import type { QueryKey, DefaultError } from '@tanstack/query-core'\nimport { QueryObserver } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport type { Accessor } from 'solid-js'\nimport { createMemo } from 'solid-js'\nimport { createBaseQuery } from './createBaseQuery'\nimport type {\n CreateQueryOptions,\n CreateQueryResult,\n DefinedCreateQueryResult,\n FunctionedParams,\n SolidQueryOptions,\n} from './types'\n\ntype UndefinedInitialDataOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = FunctionedParams<\n SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {\n initialData?: undefined\n }\n>\n\ntype DefinedInitialDataOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = FunctionedParams<\n SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {\n initialData: TQueryFnData | (() => TQueryFnData)\n }\n>\n\nexport function createQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: () => QueryClient,\n): CreateQueryResult<TData, TError>\n\nexport function createQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: () => QueryClient,\n): DefinedCreateQueryResult<TData, TError>\nexport function createQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: Accessor<QueryClient>,\n) {\n return createBaseQuery(\n createMemo(() => options()),\n QueryObserver,\n queryClient,\n )\n}\n","import type { QueryFilters } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport type { Accessor } from 'solid-js'\nimport { createMemo, createSignal, onCleanup } from 'solid-js'\nimport { useQueryClient } from './QueryClientProvider'\n\nexport function useIsFetching(\n filters?: Accessor<QueryFilters>,\n queryClient?: Accessor<QueryClient>,\n): Accessor<number> {\n const client = createMemo(() => useQueryClient(queryClient?.()))\n const queryCache = createMemo(() => client().getQueryCache())\n\n const [fetches, setFetches] = createSignal(client().isFetching(filters?.()))\n\n const unsubscribe = queryCache().subscribe(() => {\n setFetches(client().isFetching(filters?.()))\n })\n\n onCleanup(unsubscribe)\n\n return fetches\n}\n","import type {\n QueryObserver,\n QueryKey,\n DefaultError,\n InfiniteData,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport { InfiniteQueryObserver } from '@tanstack/query-core'\nimport type {\n CreateInfiniteQueryOptions,\n CreateInfiniteQueryResult,\n} from './types'\nimport { createBaseQuery } from './createBaseQuery'\nimport { createMemo } from 'solid-js'\nimport type { Accessor } from 'solid-js'\n\nexport function createInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: Accessor<QueryClient>,\n): CreateInfiniteQueryResult<TData, TError> {\n return createBaseQuery(\n createMemo(() => options()),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n InfiniteQueryObserver as typeof QueryObserver,\n queryClient,\n ) as CreateInfiniteQueryResult<TData, TError>\n}\n","import type { DefaultError } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n CreateMutateFunction,\n CreateMutationOptions,\n CreateMutationResult,\n} from './types'\nimport type { Accessor } from 'solid-js'\nimport { createComputed, onCleanup, on } from 'solid-js'\nimport { createStore } from 'solid-js/store'\nimport { shouldThrowError } from './utils'\n\n// HOOK\nexport function createMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n options: CreateMutationOptions<TData, TError, TVariables, TContext>,\n queryClient?: Accessor<QueryClient>,\n): CreateMutationResult<TData, TError, TVariables, TContext> {\n const client = useQueryClient(queryClient?.())\n\n const observer = new MutationObserver<TData, TError, TVariables, TContext>(\n client,\n options(),\n )\n\n const mutate: CreateMutateFunction<TData, TError, TVariables, TContext> = (\n variables,\n mutateOptions,\n ) => {\n observer.mutate(variables, mutateOptions).catch(noop)\n }\n\n const [state, setState] = createStore<\n CreateMutationResult<TData, TError, TVariables, TContext>\n >({\n ...observer.getCurrentResult(),\n mutate,\n mutateAsync: observer.getCurrentResult().mutate,\n })\n\n createComputed(() => {\n observer.setOptions(options())\n })\n\n createComputed(\n on(\n () => state.status,\n () => {\n if (\n state.isError &&\n shouldThrowError(observer.options.throwErrors, [state.error])\n ) {\n throw state.error\n }\n },\n ),\n )\n\n const unsubscribe = observer.subscribe((result) => {\n setState({\n ...result,\n mutate,\n mutateAsync: result.mutate,\n })\n })\n\n onCleanup(unsubscribe)\n\n return state\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n","import type { MutationFilters } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { Accessor } from 'solid-js'\nimport { createSignal, onCleanup, createMemo } from 'solid-js'\n\nexport function useIsMutating(\n filters?: Accessor<MutationFilters>,\n queryClient?: Accessor<QueryClient>,\n): Accessor<number> {\n const client = createMemo(() => useQueryClient(queryClient?.()))\n const mutationCache = createMemo(() => client().getMutationCache())\n\n const [mutations, setMutations] = createSignal(\n client().isMutating(filters?.()),\n )\n\n const unsubscribe = mutationCache().subscribe((_result) => {\n setMutations(client().isMutating(filters?.()))\n })\n\n onCleanup(unsubscribe)\n\n return mutations\n}\n","import type {\n QueriesPlaceholderDataFunction,\n QueryFunction,\n QueryKey,\n DefaultError,\n} from '@tanstack/query-core'\nimport { notifyManager, QueriesObserver } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport type { Accessor } from 'solid-js'\nimport { createComputed, onCleanup, onMount } from 'solid-js'\nimport { createStore, unwrap } from 'solid-js/store'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { CreateQueryResult, SolidQueryOptions } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype CreateQueryOptionsForCreateQueries<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = Omit<\n SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? CreateQueryOptionsForCreateQueries<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? CreateQueryOptionsForCreateQueries<\n TQueryFnData,\n Error,\n TQueryFnData,\n TQueryKey\n >\n : // Fallback\n CreateQueryOptionsForCreateQueries\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? CreateQueryResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? CreateQueryResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? CreateQueryResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? CreateQueryResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? CreateQueryResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? CreateQueryResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? CreateQueryResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? CreateQueryResult<TQueryFnData>\n : // Fallback\n CreateQueryResult\n\n/**\n * QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type QueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? CreateQueryOptionsForCreateQueries[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? QueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends CreateQueryOptionsForCreateQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n CreateQueryOptionsForCreateQueries[]\n\n/**\n * QueriesResults reducer recursively maps type param to results\n */\nexport type QueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? CreateQueryResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? QueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends CreateQueryOptionsForCreateQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n CreateQueryResult<\n unknown extends TData ? TQueryFnData : TData,\n unknown extends TError ? DefaultError : TError\n >[]\n : // Fallback\n CreateQueryResult[]\n\nexport function createQueries<T extends any[]>(\n queriesOptions: Accessor<{\n queries: readonly [...QueriesOptions<T>]\n }>,\n queryClient?: Accessor<QueryClient>,\n): QueriesResults<T> {\n const client = useQueryClient(queryClient?.())\n\n const defaultedQueries = queriesOptions().queries.map((options) => {\n const defaultedOptions = client.defaultQueryOptions(options)\n defaultedOptions._optimisticResults = 'optimistic'\n return defaultedOptions\n })\n\n const observer = new QueriesObserver(client, defaultedQueries)\n\n const [state, setState] = createStore(\n observer.getOptimisticResult(defaultedQueries),\n )\n\n const unsubscribe = observer.subscribe((result) => {\n notifyManager.batchCalls(() => {\n setState(unwrap(result))\n })()\n })\n\n onCleanup(unsubscribe)\n\n onMount(() => {\n observer.setQueries(defaultedQueries, { listeners: false })\n })\n\n createComputed(() => {\n const updatedQueries = queriesOptions().queries.map((options) => {\n const defaultedOptions = client.defaultQueryOptions(options)\n defaultedOptions._optimisticResults = 'optimistic'\n return defaultedOptions\n })\n observer.setQueries(updatedQueries)\n })\n\n return state as QueriesResults<T>\n}\n"],"names":["notifyManager","setBatchNotifyFunction","batch","QueryClient","QueryCoreClient","constructor","config","QueryClientContext","createContext","undefined","useQueryClient","queryClient","client","useContext","Error","QueryClientProvider","props","onMount","mount","onCleanup","unmount","_$createComponent","children","shouldThrowError","throwError","params","reconcileFn","store","result","reconcileOption","newData","data","reconcile","key","createBaseQuery","options","Observer","createMemo","defaultedOptions","defaultQueryOptions","_optimisticResults","structuralSharing","isServer","retry","throwErrors","observer","state","setState","createStore","getOptimisticResult","createServerSubscriber","resolve","reject","subscribe","batchCalls","query","getCurrentQuery","refetch","rest","unwrap","unwrappedResult","dataUpdateCount","fetchFailureCount","isInvalidated","isError","process","env","console","error","isSuccess","createClientSubscriber","reconcileOptions","queryResource","loading","mutate","unsubscribe","createResource","Promise","isLoading","initialValue","ssrLoadFrom","initialData","deferStream","onHydrated","_k","info","value","hydrate","queries","queryKey","queryHash","newOptions","staleTime","refetchOnMount","setOptions","createComputed","on","defer","status","isFetching","handler","get","target","prop","val","Reflect","Proxy","createQuery","QueryObserver","useIsFetching","filters","queryCache","getQueryCache","fetches","setFetches","createSignal","createInfiniteQuery","InfiniteQueryObserver","createMutation","MutationObserver","variables","mutateOptions","catch","noop","getCurrentResult","mutateAsync","useIsMutating","mutationCache","getMutationCache","mutations","setMutations","isMutating","_result","createQueries","queriesOptions","defaultedQueries","map","QueriesObserver","setQueries","listeners","updatedQueries"],"mappings":"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"}
|
package/build/esm/index.js
CHANGED
|
@@ -92,8 +92,9 @@ function createBaseQuery(options, Observer, queryClient) {
|
|
|
92
92
|
// copying over the missing properties from state in order to support hydration
|
|
93
93
|
dataUpdateCount: query.state.dataUpdateCount,
|
|
94
94
|
fetchFailureCount: query.state.fetchFailureCount,
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
// Removing these properties since they might not be serializable
|
|
96
|
+
// fetchFailureReason: query.state.fetchFailureReason,
|
|
97
|
+
// fetchMeta: query.state.fetchMeta,
|
|
97
98
|
isInvalidated: query.state.isInvalidated
|
|
98
99
|
};
|
|
99
100
|
if (unwrappedResult.isError) {
|
package/build/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/setBatchUpdatesFn.ts","../../src/QueryClient.ts","../../src/QueryClientProvider.tsx","../../src/utils.ts","../../src/createBaseQuery.ts","../../src/createQuery.ts","../../src/useIsFetching.ts","../../src/createInfiniteQuery.ts","../../src/createMutation.ts","../../src/useIsMutating.ts","../../src/createQueries.ts"],"sourcesContent":["import { notifyManager } from '@tanstack/query-core'\nimport { batch } from 'solid-js'\n\nnotifyManager.setBatchNotifyFunction(batch)\n","import type {\n QueryClientConfig as QueryCoreClientConfig,\n DefaultOptions as CoreDefaultOptions,\n QueryObserverOptions as QueryCoreObserverOptions,\n InfiniteQueryObserverOptions as QueryCoreInfiniteQueryObserverOptions,\n DefaultError,\n QueryKey,\n} from '@tanstack/query-core'\nimport { QueryClient as QueryCoreClient } from '@tanstack/query-core'\n\nexport interface QueryObserverOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n> extends Omit<\n QueryCoreObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n 'structuralSharing'\n > {\n /**\n * Set this to a reconciliation key to enable reconciliation between query results.\n * Set this to `false` to disable reconciliation between query results.\n * 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.\n * Defaults reconciliation key to `id`.\n */\n reconcile?:\n | string\n | false\n | ((oldData: TData | undefined, newData: TData) => TData)\n}\n\nexport interface InfiniteQueryObserverOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> extends Omit<\n QueryCoreInfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n 'structuralSharing'\n > {\n /**\n * Set this to a reconciliation key to enable reconciliation between query results.\n * Set this to `false` to disable reconciliation between query results.\n * 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.\n * Defaults reconciliation key to `id`.\n */\n reconcile?:\n | string\n | false\n | ((oldData: TData | undefined, newData: TData) => TData)\n}\n\nexport interface DefaultOptions<TError = DefaultError>\n extends CoreDefaultOptions<TError> {\n queries?: QueryObserverOptions<unknown, TError>\n}\n\nexport interface QueryClientConfig extends QueryCoreClientConfig {\n defaultOptions?: DefaultOptions\n}\n\nexport class QueryClient extends QueryCoreClient {\n constructor(config: QueryClientConfig = {}) {\n super(config)\n }\n}\n","import type { QueryClient } from './QueryClient'\nimport type { JSX } from 'solid-js'\nimport { createContext, useContext, onMount, onCleanup } from 'solid-js'\n\nexport const QueryClientContext = createContext<QueryClient | undefined>(\n undefined,\n)\n\nexport const useQueryClient = (queryClient?: QueryClient) => {\n const client = useContext(QueryClientContext)\n\n if (queryClient) {\n return queryClient\n }\n\n if (!client) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one')\n }\n\n return client\n}\n\nexport type QueryClientProviderProps = {\n client: QueryClient\n children?: JSX.Element\n}\n\nexport const QueryClientProvider = (\n props: QueryClientProviderProps,\n): JSX.Element => {\n onMount(() => {\n props.client.mount()\n })\n onCleanup(() => props.client.unmount())\n\n return (\n <QueryClientContext.Provider value={props.client}>\n {props.children}\n </QueryClientContext.Provider>\n )\n}\n","export function shouldThrowError<T extends (...args: any[]) => boolean>(\n throwError: boolean | T | undefined,\n params: Parameters<T>,\n): boolean {\n // Allow throwError function to override throwing behavior on a per-error basis\n if (typeof throwError === 'function') {\n return throwError(...params)\n }\n\n return !!throwError\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n// Had to disable the lint rule because isServer type is defined as false\n// in solid-js/web package. I'll create a GitHub issue with them to see\n// why that happens.\nimport type {\n QueryKey,\n QueryObserver,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport { hydrate } from '@tanstack/query-core'\nimport { notifyManager } from '@tanstack/query-core'\nimport type { Accessor } from 'solid-js'\nimport { isServer } from 'solid-js/web'\nimport {\n createComputed,\n createMemo,\n createResource,\n on,\n onCleanup,\n} from 'solid-js'\nimport { createStore, reconcile, unwrap } from 'solid-js/store'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { CreateBaseQueryOptions } from './types'\nimport { shouldThrowError } from './utils'\n\nfunction reconcileFn<TData, TError>(\n store: QueryObserverResult<TData, TError>,\n result: QueryObserverResult<TData, TError>,\n reconcileOption:\n | string\n | false\n | ((oldData: TData | undefined, newData: TData) => TData),\n): QueryObserverResult<TData, TError> {\n if (reconcileOption === false) return result\n if (typeof reconcileOption === 'function') {\n const newData = reconcileOption(store.data, result.data as TData)\n return { ...result, data: newData } as typeof result\n }\n const newData = reconcile(result.data, { key: reconcileOption })(store.data)\n return { ...result, data: newData } as typeof result\n}\n\n// Base Query Function that is used to create the query.\nexport function createBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n options: Accessor<\n CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n >,\n Observer: typeof QueryObserver,\n queryClient?: Accessor<QueryClient>,\n) {\n const client = createMemo(() => useQueryClient(queryClient?.()))\n\n const defaultedOptions = client().defaultQueryOptions(options())\n defaultedOptions._optimisticResults = 'optimistic'\n defaultedOptions.structuralSharing = false\n if (isServer) {\n defaultedOptions.retry = false\n defaultedOptions.throwErrors = true\n }\n const observer = new Observer(client(), defaultedOptions)\n\n const [state, setState] = createStore<QueryObserverResult<TData, TError>>(\n observer.getOptimisticResult(defaultedOptions),\n )\n\n const createServerSubscriber = (\n resolve: (\n data:\n | QueryObserverResult<TData, TError>\n | PromiseLike<QueryObserverResult<TData, TError> | undefined>\n | undefined,\n ) => void,\n reject: (reason?: any) => void,\n ) => {\n return observer.subscribe((result) => {\n notifyManager.batchCalls(() => {\n const query = observer.getCurrentQuery()\n const { refetch, ...rest } = unwrap(result)\n const unwrappedResult = {\n ...rest,\n\n // hydrate() expects a QueryState object, which is similar but not\n // quite the same as a QueryObserverResult object. Thus, for now, we're\n // copying over the missing properties from state in order to support hydration\n dataUpdateCount: query.state.dataUpdateCount,\n fetchFailureCount: query.state.fetchFailureCount,\n fetchFailureReason: query.state.fetchFailureReason,\n fetchMeta: query.state.fetchMeta,\n isInvalidated: query.state.isInvalidated,\n }\n\n if (unwrappedResult.isError) {\n if (process.env['NODE_ENV'] === 'development') {\n console.error(unwrappedResult.error)\n }\n reject(unwrappedResult.error)\n }\n if (unwrappedResult.isSuccess) {\n // Use of any here is fine\n // We cannot include refetch since it is not serializable\n resolve(unwrappedResult as any)\n }\n })()\n })\n }\n\n const createClientSubscriber = () => {\n return observer.subscribe((result) => {\n notifyManager.batchCalls(() => {\n // @ts-expect-error - This will error because the reconcile option does not\n // exist on the query-core QueryObserverResult type\n const reconcileOptions = observer.options.reconcile\n // If the query has data we dont suspend but instead mutate the resource\n // This could happen when placeholderData/initialData is defined\n if (queryResource()?.data && result.data && !queryResource.loading) {\n setState((store) => {\n return reconcileFn(\n store,\n result,\n reconcileOptions === undefined ? 'id' : reconcileOptions,\n )\n })\n mutate(state)\n } else {\n setState((store) => {\n return reconcileFn(\n store,\n result,\n reconcileOptions === undefined ? 'id' : reconcileOptions,\n )\n })\n refetch()\n }\n })()\n })\n }\n\n /**\n * Unsubscribe is set lazily, so that we can subscribe after hydration when needed.\n */\n let unsubscribe: (() => void) | null = null\n\n const [queryResource, { refetch, mutate }] = createResource<\n QueryObserverResult<TData, TError> | undefined\n >(\n () => {\n return new Promise((resolve, reject) => {\n if (isServer) {\n unsubscribe = createServerSubscriber(resolve, reject)\n } else {\n if (!unsubscribe) {\n unsubscribe = createClientSubscriber()\n }\n }\n if (!state.isLoading) {\n resolve(state)\n }\n })\n },\n {\n initialValue: state,\n\n // If initialData is provided, we resolve the resource immediately\n ssrLoadFrom: options().initialData ? 'initial' : 'server',\n\n get deferStream() {\n return options().deferStream\n },\n\n /**\n * If this resource was populated on the server (either sync render, or streamed in over time), onHydrated\n * will be called. This is the point at which we can hydrate the query cache state, and setup the query subscriber.\n *\n * Leveraging onHydrated allows us to plug into the async and streaming support that solidjs resources already support.\n *\n * Note that this is only invoked on the client, for queries that were originally run on the server.\n */\n onHydrated(_k, info) {\n if (info.value) {\n hydrate(client(), {\n queries: [\n {\n queryKey: defaultedOptions.queryKey,\n queryHash: defaultedOptions.queryHash,\n state: info.value,\n },\n ],\n })\n }\n\n if (!unsubscribe) {\n /**\n * Do not refetch query on mount if query was fetched on server,\n * even if `staleTime` is not set.\n */\n const newOptions = { ...defaultedOptions }\n if (defaultedOptions.staleTime || !defaultedOptions.initialData) {\n newOptions.refetchOnMount = false\n }\n // Setting the options as an immutable object to prevent\n // wonky behavior with observer subscriptions\n observer.setOptions(newOptions)\n setState(observer.getOptimisticResult(newOptions))\n unsubscribe = createClientSubscriber()\n }\n },\n },\n )\n\n onCleanup(() => {\n if (unsubscribe) {\n unsubscribe()\n unsubscribe = null\n }\n })\n\n createComputed(\n on(\n () => client().defaultQueryOptions(options()),\n () => observer.setOptions(client().defaultQueryOptions(options())),\n {\n // Defer because we don't need to trigger on first render\n // This only cares about changes to options after the observer is created\n defer: true,\n },\n ),\n )\n\n createComputed(\n on(\n () => state.status,\n () => {\n if (\n state.isError &&\n !state.isFetching &&\n shouldThrowError(observer.options.throwErrors, [\n state.error,\n observer.getCurrentQuery(),\n ])\n ) {\n throw state.error\n }\n },\n ),\n )\n\n const handler = {\n get(\n target: QueryObserverResult<TData, TError>,\n prop: keyof QueryObserverResult<TData, TError>,\n ): any {\n const val = queryResource()?.[prop]\n return val !== undefined ? val : Reflect.get(target, prop)\n },\n }\n\n return new Proxy(state, handler)\n}\n","import type { QueryKey, DefaultError } from '@tanstack/query-core'\nimport { QueryObserver } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport type { Accessor } from 'solid-js'\nimport { createMemo } from 'solid-js'\nimport { createBaseQuery } from './createBaseQuery'\nimport type {\n CreateQueryOptions,\n CreateQueryResult,\n DefinedCreateQueryResult,\n FunctionedParams,\n SolidQueryOptions,\n} from './types'\n\ntype UndefinedInitialDataOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = FunctionedParams<\n SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {\n initialData?: undefined\n }\n>\n\ntype DefinedInitialDataOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = FunctionedParams<\n SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {\n initialData: TQueryFnData | (() => TQueryFnData)\n }\n>\n\nexport function createQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: () => QueryClient,\n): CreateQueryResult<TData, TError>\n\nexport function createQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: () => QueryClient,\n): DefinedCreateQueryResult<TData, TError>\nexport function createQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: Accessor<QueryClient>,\n) {\n return createBaseQuery(\n createMemo(() => options()),\n QueryObserver,\n queryClient,\n )\n}\n","import type { QueryFilters } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport type { Accessor } from 'solid-js'\nimport { createMemo, createSignal, onCleanup } from 'solid-js'\nimport { useQueryClient } from './QueryClientProvider'\n\nexport function useIsFetching(\n filters?: Accessor<QueryFilters>,\n queryClient?: Accessor<QueryClient>,\n): Accessor<number> {\n const client = createMemo(() => useQueryClient(queryClient?.()))\n const queryCache = createMemo(() => client().getQueryCache())\n\n const [fetches, setFetches] = createSignal(client().isFetching(filters?.()))\n\n const unsubscribe = queryCache().subscribe(() => {\n setFetches(client().isFetching(filters?.()))\n })\n\n onCleanup(unsubscribe)\n\n return fetches\n}\n","import type {\n QueryObserver,\n QueryKey,\n DefaultError,\n InfiniteData,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport { InfiniteQueryObserver } from '@tanstack/query-core'\nimport type {\n CreateInfiniteQueryOptions,\n CreateInfiniteQueryResult,\n} from './types'\nimport { createBaseQuery } from './createBaseQuery'\nimport { createMemo } from 'solid-js'\nimport type { Accessor } from 'solid-js'\n\nexport function createInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: Accessor<QueryClient>,\n): CreateInfiniteQueryResult<TData, TError> {\n return createBaseQuery(\n createMemo(() => options()),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n InfiniteQueryObserver as typeof QueryObserver,\n queryClient,\n ) as CreateInfiniteQueryResult<TData, TError>\n}\n","import type { DefaultError } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n CreateMutateFunction,\n CreateMutationOptions,\n CreateMutationResult,\n} from './types'\nimport type { Accessor } from 'solid-js'\nimport { createComputed, onCleanup, on } from 'solid-js'\nimport { createStore } from 'solid-js/store'\nimport { shouldThrowError } from './utils'\n\n// HOOK\nexport function createMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n options: CreateMutationOptions<TData, TError, TVariables, TContext>,\n queryClient?: Accessor<QueryClient>,\n): CreateMutationResult<TData, TError, TVariables, TContext> {\n const client = useQueryClient(queryClient?.())\n\n const observer = new MutationObserver<TData, TError, TVariables, TContext>(\n client,\n options(),\n )\n\n const mutate: CreateMutateFunction<TData, TError, TVariables, TContext> = (\n variables,\n mutateOptions,\n ) => {\n observer.mutate(variables, mutateOptions).catch(noop)\n }\n\n const [state, setState] = createStore<\n CreateMutationResult<TData, TError, TVariables, TContext>\n >({\n ...observer.getCurrentResult(),\n mutate,\n mutateAsync: observer.getCurrentResult().mutate,\n })\n\n createComputed(() => {\n observer.setOptions(options())\n })\n\n createComputed(\n on(\n () => state.status,\n () => {\n if (\n state.isError &&\n shouldThrowError(observer.options.throwErrors, [state.error])\n ) {\n throw state.error\n }\n },\n ),\n )\n\n const unsubscribe = observer.subscribe((result) => {\n setState({\n ...result,\n mutate,\n mutateAsync: result.mutate,\n })\n })\n\n onCleanup(unsubscribe)\n\n return state\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n","import type { MutationFilters } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { Accessor } from 'solid-js'\nimport { createSignal, onCleanup, createMemo } from 'solid-js'\n\nexport function useIsMutating(\n filters?: Accessor<MutationFilters>,\n queryClient?: Accessor<QueryClient>,\n): Accessor<number> {\n const client = createMemo(() => useQueryClient(queryClient?.()))\n const mutationCache = createMemo(() => client().getMutationCache())\n\n const [mutations, setMutations] = createSignal(\n client().isMutating(filters?.()),\n )\n\n const unsubscribe = mutationCache().subscribe((_result) => {\n setMutations(client().isMutating(filters?.()))\n })\n\n onCleanup(unsubscribe)\n\n return mutations\n}\n","import type {\n QueriesPlaceholderDataFunction,\n QueryFunction,\n QueryKey,\n DefaultError,\n} from '@tanstack/query-core'\nimport { notifyManager, QueriesObserver } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport type { Accessor } from 'solid-js'\nimport { createComputed, onCleanup, onMount } from 'solid-js'\nimport { createStore, unwrap } from 'solid-js/store'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { CreateQueryResult, SolidQueryOptions } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype CreateQueryOptionsForCreateQueries<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = Omit<\n SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? CreateQueryOptionsForCreateQueries<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? CreateQueryOptionsForCreateQueries<\n TQueryFnData,\n Error,\n TQueryFnData,\n TQueryKey\n >\n : // Fallback\n CreateQueryOptionsForCreateQueries\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? CreateQueryResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? CreateQueryResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? CreateQueryResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? CreateQueryResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? CreateQueryResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? CreateQueryResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? CreateQueryResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? CreateQueryResult<TQueryFnData>\n : // Fallback\n CreateQueryResult\n\n/**\n * QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type QueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? CreateQueryOptionsForCreateQueries[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? QueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends CreateQueryOptionsForCreateQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n CreateQueryOptionsForCreateQueries[]\n\n/**\n * QueriesResults reducer recursively maps type param to results\n */\nexport type QueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? CreateQueryResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? QueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends CreateQueryOptionsForCreateQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n CreateQueryResult<\n unknown extends TData ? TQueryFnData : TData,\n unknown extends TError ? DefaultError : TError\n >[]\n : // Fallback\n CreateQueryResult[]\n\nexport function createQueries<T extends any[]>(\n queriesOptions: Accessor<{\n queries: readonly [...QueriesOptions<T>]\n }>,\n queryClient?: Accessor<QueryClient>,\n): QueriesResults<T> {\n const client = useQueryClient(queryClient?.())\n\n const defaultedQueries = queriesOptions().queries.map((options) => {\n const defaultedOptions = client.defaultQueryOptions(options)\n defaultedOptions._optimisticResults = 'optimistic'\n return defaultedOptions\n })\n\n const observer = new QueriesObserver(client, defaultedQueries)\n\n const [state, setState] = createStore(\n observer.getOptimisticResult(defaultedQueries),\n )\n\n const unsubscribe = observer.subscribe((result) => {\n notifyManager.batchCalls(() => {\n setState(unwrap(result))\n })()\n })\n\n onCleanup(unsubscribe)\n\n onMount(() => {\n observer.setQueries(defaultedQueries, { listeners: false })\n })\n\n createComputed(() => {\n const updatedQueries = queriesOptions().queries.map((options) => {\n const defaultedOptions = client.defaultQueryOptions(options)\n defaultedOptions._optimisticResults = 'optimistic'\n return defaultedOptions\n })\n observer.setQueries(updatedQueries)\n })\n\n return state as QueriesResults<T>\n}\n"],"names":["notifyManager","setBatchNotifyFunction","batch","QueryClient","QueryCoreClient","constructor","config","QueryClientContext","createContext","undefined","useQueryClient","queryClient","client","useContext","Error","QueryClientProvider","props","onMount","mount","onCleanup","unmount","_$createComponent","children","shouldThrowError","throwError","params","reconcileFn","store","result","reconcileOption","newData","data","reconcile","key","createBaseQuery","options","Observer","createMemo","defaultedOptions","defaultQueryOptions","_optimisticResults","structuralSharing","isServer","retry","throwErrors","observer","state","setState","createStore","getOptimisticResult","createServerSubscriber","resolve","reject","subscribe","batchCalls","query","getCurrentQuery","refetch","rest","unwrap","unwrappedResult","dataUpdateCount","fetchFailureCount","fetchFailureReason","fetchMeta","isInvalidated","isError","process","env","console","error","isSuccess","createClientSubscriber","reconcileOptions","queryResource","loading","mutate","unsubscribe","createResource","Promise","isLoading","initialValue","ssrLoadFrom","initialData","deferStream","onHydrated","_k","info","value","hydrate","queries","queryKey","queryHash","newOptions","staleTime","refetchOnMount","setOptions","createComputed","on","defer","status","isFetching","handler","get","target","prop","val","Reflect","Proxy","createQuery","QueryObserver","useIsFetching","filters","queryCache","getQueryCache","fetches","setFetches","createSignal","createInfiniteQuery","InfiniteQueryObserver","createMutation","MutationObserver","variables","mutateOptions","catch","noop","getCurrentResult","mutateAsync","useIsMutating","mutationCache","getMutationCache","mutations","setMutations","isMutating","_result","createQueries","queriesOptions","defaultedQueries","map","QueriesObserver","setQueries","listeners","updatedQueries"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/setBatchUpdatesFn.ts","../../src/QueryClient.ts","../../src/QueryClientProvider.tsx","../../src/utils.ts","../../src/createBaseQuery.ts","../../src/createQuery.ts","../../src/useIsFetching.ts","../../src/createInfiniteQuery.ts","../../src/createMutation.ts","../../src/useIsMutating.ts","../../src/createQueries.ts"],"sourcesContent":["import { notifyManager } from '@tanstack/query-core'\nimport { batch } from 'solid-js'\n\nnotifyManager.setBatchNotifyFunction(batch)\n","import type {\n QueryClientConfig as QueryCoreClientConfig,\n DefaultOptions as CoreDefaultOptions,\n QueryObserverOptions as QueryCoreObserverOptions,\n InfiniteQueryObserverOptions as QueryCoreInfiniteQueryObserverOptions,\n DefaultError,\n QueryKey,\n} from '@tanstack/query-core'\nimport { QueryClient as QueryCoreClient } from '@tanstack/query-core'\n\nexport interface QueryObserverOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n> extends Omit<\n QueryCoreObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n 'structuralSharing'\n > {\n /**\n * Set this to a reconciliation key to enable reconciliation between query results.\n * Set this to `false` to disable reconciliation between query results.\n * 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.\n * Defaults reconciliation key to `id`.\n */\n reconcile?:\n | string\n | false\n | ((oldData: TData | undefined, newData: TData) => TData)\n}\n\nexport interface InfiniteQueryObserverOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> extends Omit<\n QueryCoreInfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n 'structuralSharing'\n > {\n /**\n * Set this to a reconciliation key to enable reconciliation between query results.\n * Set this to `false` to disable reconciliation between query results.\n * 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.\n * Defaults reconciliation key to `id`.\n */\n reconcile?:\n | string\n | false\n | ((oldData: TData | undefined, newData: TData) => TData)\n}\n\nexport interface DefaultOptions<TError = DefaultError>\n extends CoreDefaultOptions<TError> {\n queries?: QueryObserverOptions<unknown, TError>\n}\n\nexport interface QueryClientConfig extends QueryCoreClientConfig {\n defaultOptions?: DefaultOptions\n}\n\nexport class QueryClient extends QueryCoreClient {\n constructor(config: QueryClientConfig = {}) {\n super(config)\n }\n}\n","import type { QueryClient } from './QueryClient'\nimport type { JSX } from 'solid-js'\nimport { createContext, useContext, onMount, onCleanup } from 'solid-js'\n\nexport const QueryClientContext = createContext<QueryClient | undefined>(\n undefined,\n)\n\nexport const useQueryClient = (queryClient?: QueryClient) => {\n const client = useContext(QueryClientContext)\n\n if (queryClient) {\n return queryClient\n }\n\n if (!client) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one')\n }\n\n return client\n}\n\nexport type QueryClientProviderProps = {\n client: QueryClient\n children?: JSX.Element\n}\n\nexport const QueryClientProvider = (\n props: QueryClientProviderProps,\n): JSX.Element => {\n onMount(() => {\n props.client.mount()\n })\n onCleanup(() => props.client.unmount())\n\n return (\n <QueryClientContext.Provider value={props.client}>\n {props.children}\n </QueryClientContext.Provider>\n )\n}\n","export function shouldThrowError<T extends (...args: any[]) => boolean>(\n throwError: boolean | T | undefined,\n params: Parameters<T>,\n): boolean {\n // Allow throwError function to override throwing behavior on a per-error basis\n if (typeof throwError === 'function') {\n return throwError(...params)\n }\n\n return !!throwError\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n// Had to disable the lint rule because isServer type is defined as false\n// in solid-js/web package. I'll create a GitHub issue with them to see\n// why that happens.\nimport type {\n QueryKey,\n QueryObserver,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport { hydrate } from '@tanstack/query-core'\nimport { notifyManager } from '@tanstack/query-core'\nimport type { Accessor } from 'solid-js'\nimport { isServer } from 'solid-js/web'\nimport {\n createComputed,\n createMemo,\n createResource,\n on,\n onCleanup,\n} from 'solid-js'\nimport { createStore, reconcile, unwrap } from 'solid-js/store'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { CreateBaseQueryOptions } from './types'\nimport { shouldThrowError } from './utils'\n\nfunction reconcileFn<TData, TError>(\n store: QueryObserverResult<TData, TError>,\n result: QueryObserverResult<TData, TError>,\n reconcileOption:\n | string\n | false\n | ((oldData: TData | undefined, newData: TData) => TData),\n): QueryObserverResult<TData, TError> {\n if (reconcileOption === false) return result\n if (typeof reconcileOption === 'function') {\n const newData = reconcileOption(store.data, result.data as TData)\n return { ...result, data: newData } as typeof result\n }\n const newData = reconcile(result.data, { key: reconcileOption })(store.data)\n return { ...result, data: newData } as typeof result\n}\n\n// Base Query Function that is used to create the query.\nexport function createBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n options: Accessor<\n CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>\n >,\n Observer: typeof QueryObserver,\n queryClient?: Accessor<QueryClient>,\n) {\n const client = createMemo(() => useQueryClient(queryClient?.()))\n\n const defaultedOptions = client().defaultQueryOptions(options())\n defaultedOptions._optimisticResults = 'optimistic'\n defaultedOptions.structuralSharing = false\n if (isServer) {\n defaultedOptions.retry = false\n defaultedOptions.throwErrors = true\n }\n const observer = new Observer(client(), defaultedOptions)\n\n const [state, setState] = createStore<QueryObserverResult<TData, TError>>(\n observer.getOptimisticResult(defaultedOptions),\n )\n\n const createServerSubscriber = (\n resolve: (\n data:\n | QueryObserverResult<TData, TError>\n | PromiseLike<QueryObserverResult<TData, TError> | undefined>\n | undefined,\n ) => void,\n reject: (reason?: any) => void,\n ) => {\n return observer.subscribe((result) => {\n notifyManager.batchCalls(() => {\n const query = observer.getCurrentQuery()\n const { refetch, ...rest } = unwrap(result)\n const unwrappedResult = {\n ...rest,\n\n // hydrate() expects a QueryState object, which is similar but not\n // quite the same as a QueryObserverResult object. Thus, for now, we're\n // copying over the missing properties from state in order to support hydration\n dataUpdateCount: query.state.dataUpdateCount,\n fetchFailureCount: query.state.fetchFailureCount,\n // Removing these properties since they might not be serializable\n // fetchFailureReason: query.state.fetchFailureReason,\n // fetchMeta: query.state.fetchMeta,\n isInvalidated: query.state.isInvalidated,\n }\n\n if (unwrappedResult.isError) {\n if (process.env['NODE_ENV'] === 'development') {\n console.error(unwrappedResult.error)\n }\n reject(unwrappedResult.error)\n }\n if (unwrappedResult.isSuccess) {\n // Use of any here is fine\n // We cannot include refetch since it is not serializable\n resolve(unwrappedResult as any)\n }\n })()\n })\n }\n\n const createClientSubscriber = () => {\n return observer.subscribe((result) => {\n notifyManager.batchCalls(() => {\n // @ts-expect-error - This will error because the reconcile option does not\n // exist on the query-core QueryObserverResult type\n const reconcileOptions = observer.options.reconcile\n // If the query has data we dont suspend but instead mutate the resource\n // This could happen when placeholderData/initialData is defined\n if (queryResource()?.data && result.data && !queryResource.loading) {\n setState((store) => {\n return reconcileFn(\n store,\n result,\n reconcileOptions === undefined ? 'id' : reconcileOptions,\n )\n })\n mutate(state)\n } else {\n setState((store) => {\n return reconcileFn(\n store,\n result,\n reconcileOptions === undefined ? 'id' : reconcileOptions,\n )\n })\n refetch()\n }\n })()\n })\n }\n\n /**\n * Unsubscribe is set lazily, so that we can subscribe after hydration when needed.\n */\n let unsubscribe: (() => void) | null = null\n\n const [queryResource, { refetch, mutate }] = createResource<\n QueryObserverResult<TData, TError> | undefined\n >(\n () => {\n return new Promise((resolve, reject) => {\n if (isServer) {\n unsubscribe = createServerSubscriber(resolve, reject)\n } else {\n if (!unsubscribe) {\n unsubscribe = createClientSubscriber()\n }\n }\n if (!state.isLoading) {\n resolve(state)\n }\n })\n },\n {\n initialValue: state,\n\n // If initialData is provided, we resolve the resource immediately\n ssrLoadFrom: options().initialData ? 'initial' : 'server',\n\n get deferStream() {\n return options().deferStream\n },\n\n /**\n * If this resource was populated on the server (either sync render, or streamed in over time), onHydrated\n * will be called. This is the point at which we can hydrate the query cache state, and setup the query subscriber.\n *\n * Leveraging onHydrated allows us to plug into the async and streaming support that solidjs resources already support.\n *\n * Note that this is only invoked on the client, for queries that were originally run on the server.\n */\n onHydrated(_k, info) {\n if (info.value) {\n hydrate(client(), {\n queries: [\n {\n queryKey: defaultedOptions.queryKey,\n queryHash: defaultedOptions.queryHash,\n state: info.value,\n },\n ],\n })\n }\n\n if (!unsubscribe) {\n /**\n * Do not refetch query on mount if query was fetched on server,\n * even if `staleTime` is not set.\n */\n const newOptions = { ...defaultedOptions }\n if (defaultedOptions.staleTime || !defaultedOptions.initialData) {\n newOptions.refetchOnMount = false\n }\n // Setting the options as an immutable object to prevent\n // wonky behavior with observer subscriptions\n observer.setOptions(newOptions)\n setState(observer.getOptimisticResult(newOptions))\n unsubscribe = createClientSubscriber()\n }\n },\n },\n )\n\n onCleanup(() => {\n if (unsubscribe) {\n unsubscribe()\n unsubscribe = null\n }\n })\n\n createComputed(\n on(\n () => client().defaultQueryOptions(options()),\n () => observer.setOptions(client().defaultQueryOptions(options())),\n {\n // Defer because we don't need to trigger on first render\n // This only cares about changes to options after the observer is created\n defer: true,\n },\n ),\n )\n\n createComputed(\n on(\n () => state.status,\n () => {\n if (\n state.isError &&\n !state.isFetching &&\n shouldThrowError(observer.options.throwErrors, [\n state.error,\n observer.getCurrentQuery(),\n ])\n ) {\n throw state.error\n }\n },\n ),\n )\n\n const handler = {\n get(\n target: QueryObserverResult<TData, TError>,\n prop: keyof QueryObserverResult<TData, TError>,\n ): any {\n const val = queryResource()?.[prop]\n return val !== undefined ? val : Reflect.get(target, prop)\n },\n }\n\n return new Proxy(state, handler)\n}\n","import type { QueryKey, DefaultError } from '@tanstack/query-core'\nimport { QueryObserver } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport type { Accessor } from 'solid-js'\nimport { createMemo } from 'solid-js'\nimport { createBaseQuery } from './createBaseQuery'\nimport type {\n CreateQueryOptions,\n CreateQueryResult,\n DefinedCreateQueryResult,\n FunctionedParams,\n SolidQueryOptions,\n} from './types'\n\ntype UndefinedInitialDataOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = FunctionedParams<\n SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {\n initialData?: undefined\n }\n>\n\ntype DefinedInitialDataOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = FunctionedParams<\n SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {\n initialData: TQueryFnData | (() => TQueryFnData)\n }\n>\n\nexport function createQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: () => QueryClient,\n): CreateQueryResult<TData, TError>\n\nexport function createQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: () => QueryClient,\n): DefinedCreateQueryResult<TData, TError>\nexport function createQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: Accessor<QueryClient>,\n) {\n return createBaseQuery(\n createMemo(() => options()),\n QueryObserver,\n queryClient,\n )\n}\n","import type { QueryFilters } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport type { Accessor } from 'solid-js'\nimport { createMemo, createSignal, onCleanup } from 'solid-js'\nimport { useQueryClient } from './QueryClientProvider'\n\nexport function useIsFetching(\n filters?: Accessor<QueryFilters>,\n queryClient?: Accessor<QueryClient>,\n): Accessor<number> {\n const client = createMemo(() => useQueryClient(queryClient?.()))\n const queryCache = createMemo(() => client().getQueryCache())\n\n const [fetches, setFetches] = createSignal(client().isFetching(filters?.()))\n\n const unsubscribe = queryCache().subscribe(() => {\n setFetches(client().isFetching(filters?.()))\n })\n\n onCleanup(unsubscribe)\n\n return fetches\n}\n","import type {\n QueryObserver,\n QueryKey,\n DefaultError,\n InfiniteData,\n} from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport { InfiniteQueryObserver } from '@tanstack/query-core'\nimport type {\n CreateInfiniteQueryOptions,\n CreateInfiniteQueryResult,\n} from './types'\nimport { createBaseQuery } from './createBaseQuery'\nimport { createMemo } from 'solid-js'\nimport type { Accessor } from 'solid-js'\n\nexport function createInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: Accessor<QueryClient>,\n): CreateInfiniteQueryResult<TData, TError> {\n return createBaseQuery(\n createMemo(() => options()),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n InfiniteQueryObserver as typeof QueryObserver,\n queryClient,\n ) as CreateInfiniteQueryResult<TData, TError>\n}\n","import type { DefaultError } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport { MutationObserver } from '@tanstack/query-core'\nimport { useQueryClient } from './QueryClientProvider'\nimport type {\n CreateMutateFunction,\n CreateMutationOptions,\n CreateMutationResult,\n} from './types'\nimport type { Accessor } from 'solid-js'\nimport { createComputed, onCleanup, on } from 'solid-js'\nimport { createStore } from 'solid-js/store'\nimport { shouldThrowError } from './utils'\n\n// HOOK\nexport function createMutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n>(\n options: CreateMutationOptions<TData, TError, TVariables, TContext>,\n queryClient?: Accessor<QueryClient>,\n): CreateMutationResult<TData, TError, TVariables, TContext> {\n const client = useQueryClient(queryClient?.())\n\n const observer = new MutationObserver<TData, TError, TVariables, TContext>(\n client,\n options(),\n )\n\n const mutate: CreateMutateFunction<TData, TError, TVariables, TContext> = (\n variables,\n mutateOptions,\n ) => {\n observer.mutate(variables, mutateOptions).catch(noop)\n }\n\n const [state, setState] = createStore<\n CreateMutationResult<TData, TError, TVariables, TContext>\n >({\n ...observer.getCurrentResult(),\n mutate,\n mutateAsync: observer.getCurrentResult().mutate,\n })\n\n createComputed(() => {\n observer.setOptions(options())\n })\n\n createComputed(\n on(\n () => state.status,\n () => {\n if (\n state.isError &&\n shouldThrowError(observer.options.throwErrors, [state.error])\n ) {\n throw state.error\n }\n },\n ),\n )\n\n const unsubscribe = observer.subscribe((result) => {\n setState({\n ...result,\n mutate,\n mutateAsync: result.mutate,\n })\n })\n\n onCleanup(unsubscribe)\n\n return state\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n","import type { MutationFilters } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { Accessor } from 'solid-js'\nimport { createSignal, onCleanup, createMemo } from 'solid-js'\n\nexport function useIsMutating(\n filters?: Accessor<MutationFilters>,\n queryClient?: Accessor<QueryClient>,\n): Accessor<number> {\n const client = createMemo(() => useQueryClient(queryClient?.()))\n const mutationCache = createMemo(() => client().getMutationCache())\n\n const [mutations, setMutations] = createSignal(\n client().isMutating(filters?.()),\n )\n\n const unsubscribe = mutationCache().subscribe((_result) => {\n setMutations(client().isMutating(filters?.()))\n })\n\n onCleanup(unsubscribe)\n\n return mutations\n}\n","import type {\n QueriesPlaceholderDataFunction,\n QueryFunction,\n QueryKey,\n DefaultError,\n} from '@tanstack/query-core'\nimport { notifyManager, QueriesObserver } from '@tanstack/query-core'\nimport type { QueryClient } from './QueryClient'\nimport type { Accessor } from 'solid-js'\nimport { createComputed, onCleanup, onMount } from 'solid-js'\nimport { createStore, unwrap } from 'solid-js/store'\nimport { useQueryClient } from './QueryClientProvider'\nimport type { CreateQueryResult, SolidQueryOptions } from './types'\n\n// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function does not have a parameter\ntype CreateQueryOptionsForCreateQueries<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = Omit<\n SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\ntype GetOptions<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? CreateQueryOptionsForCreateQueries<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>\n select: (data: any) => infer TData\n }\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, Error, TData, TQueryKey>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }\n ? CreateQueryOptionsForCreateQueries<\n TQueryFnData,\n Error,\n TQueryFnData,\n TQueryKey\n >\n : // Fallback\n CreateQueryOptionsForCreateQueries\n\ntype GetResults<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? CreateQueryResult<TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? CreateQueryResult<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? CreateQueryResult<TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? CreateQueryResult<TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? CreateQueryResult<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? CreateQueryResult<TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?: QueryFunction<unknown, any>\n select: (data: any) => infer TData\n }\n ? CreateQueryResult<TData>\n : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }\n ? CreateQueryResult<TQueryFnData>\n : // Fallback\n CreateQueryResult\n\n/**\n * QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param\n */\nexport type QueriesOptions<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? CreateQueryOptionsForCreateQueries[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetOptions<Head>]\n : T extends [infer Head, ...infer Tail]\n ? QueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>\n : unknown[] extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends CreateQueryOptionsForCreateQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >[]\n ? CreateQueryOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>[]\n : // Fallback\n CreateQueryOptionsForCreateQueries[]\n\n/**\n * QueriesResults reducer recursively maps type param to results\n */\nexport type QueriesResults<\n T extends any[],\n Result extends any[] = [],\n Depth extends ReadonlyArray<number> = [],\n> = Depth['length'] extends MAXIMUM_DEPTH\n ? CreateQueryResult[]\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...Result, GetResults<Head>]\n : T extends [infer Head, ...infer Tail]\n ? QueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>\n : T extends CreateQueryOptionsForCreateQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n any\n >[]\n ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results\n CreateQueryResult<\n unknown extends TData ? TQueryFnData : TData,\n unknown extends TError ? DefaultError : TError\n >[]\n : // Fallback\n CreateQueryResult[]\n\nexport function createQueries<T extends any[]>(\n queriesOptions: Accessor<{\n queries: readonly [...QueriesOptions<T>]\n }>,\n queryClient?: Accessor<QueryClient>,\n): QueriesResults<T> {\n const client = useQueryClient(queryClient?.())\n\n const defaultedQueries = queriesOptions().queries.map((options) => {\n const defaultedOptions = client.defaultQueryOptions(options)\n defaultedOptions._optimisticResults = 'optimistic'\n return defaultedOptions\n })\n\n const observer = new QueriesObserver(client, defaultedQueries)\n\n const [state, setState] = createStore(\n observer.getOptimisticResult(defaultedQueries),\n )\n\n const unsubscribe = observer.subscribe((result) => {\n notifyManager.batchCalls(() => {\n setState(unwrap(result))\n })()\n })\n\n onCleanup(unsubscribe)\n\n onMount(() => {\n observer.setQueries(defaultedQueries, { listeners: false })\n })\n\n createComputed(() => {\n const updatedQueries = queriesOptions().queries.map((options) => {\n const defaultedOptions = client.defaultQueryOptions(options)\n defaultedOptions._optimisticResults = 'optimistic'\n return defaultedOptions\n })\n observer.setQueries(updatedQueries)\n })\n\n return state as QueriesResults<T>\n}\n"],"names":["notifyManager","setBatchNotifyFunction","batch","QueryClient","QueryCoreClient","constructor","config","QueryClientContext","createContext","undefined","useQueryClient","queryClient","client","useContext","Error","QueryClientProvider","props","onMount","mount","onCleanup","unmount","_$createComponent","children","shouldThrowError","throwError","params","reconcileFn","store","result","reconcileOption","newData","data","reconcile","key","createBaseQuery","options","Observer","createMemo","defaultedOptions","defaultQueryOptions","_optimisticResults","structuralSharing","isServer","retry","throwErrors","observer","state","setState","createStore","getOptimisticResult","createServerSubscriber","resolve","reject","subscribe","batchCalls","query","getCurrentQuery","refetch","rest","unwrap","unwrappedResult","dataUpdateCount","fetchFailureCount","isInvalidated","isError","process","env","console","error","isSuccess","createClientSubscriber","reconcileOptions","queryResource","loading","mutate","unsubscribe","createResource","Promise","isLoading","initialValue","ssrLoadFrom","initialData","deferStream","onHydrated","_k","info","value","hydrate","queries","queryKey","queryHash","newOptions","staleTime","refetchOnMount","setOptions","createComputed","on","defer","status","isFetching","handler","get","target","prop","val","Reflect","Proxy","createQuery","QueryObserver","useIsFetching","filters","queryCache","getQueryCache","fetches","setFetches","createSignal","createInfiniteQuery","InfiniteQueryObserver","createMutation","MutationObserver","variables","mutateOptions","catch","noop","getCurrentResult","mutateAsync","useIsMutating","mutationCache","getMutationCache","mutations","setMutations","isMutating","_result","createQueries","queriesOptions","defaultedQueries","map","QueriesObserver","setQueries","listeners","updatedQueries"],"mappings":"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"}
|
|
@@ -117,10 +117,6 @@ describe('useQueries', () => {
|
|
|
117
117
|
expectTypeNotAny(a);
|
|
118
118
|
return a.toLowerCase();
|
|
119
119
|
},
|
|
120
|
-
onSuccess: (a) => {
|
|
121
|
-
expectType(a);
|
|
122
|
-
expectTypeNotAny(a);
|
|
123
|
-
},
|
|
124
120
|
placeholderData: 'string',
|
|
125
121
|
// @ts-expect-error (initialData: string)
|
|
126
122
|
initialData: 123,
|
|
@@ -133,14 +129,6 @@ describe('useQueries', () => {
|
|
|
133
129
|
expectTypeNotAny(a);
|
|
134
130
|
return parseInt(a);
|
|
135
131
|
},
|
|
136
|
-
onSuccess: (a) => {
|
|
137
|
-
expectType(a);
|
|
138
|
-
expectTypeNotAny(a);
|
|
139
|
-
},
|
|
140
|
-
onError: (e) => {
|
|
141
|
-
expectType(e);
|
|
142
|
-
expectTypeNotAny(e);
|
|
143
|
-
},
|
|
144
132
|
placeholderData: 'string',
|
|
145
133
|
// @ts-expect-error (initialData: string)
|
|
146
134
|
initialData: 123,
|
|
@@ -253,10 +241,6 @@ describe('useQueries', () => {
|
|
|
253
241
|
expectTypeNotAny(a);
|
|
254
242
|
return a.toLowerCase();
|
|
255
243
|
},
|
|
256
|
-
onSuccess: (a) => {
|
|
257
|
-
expectType(a);
|
|
258
|
-
expectTypeNotAny(a);
|
|
259
|
-
},
|
|
260
244
|
placeholderData: 'string',
|
|
261
245
|
// @ts-expect-error (initialData: string)
|
|
262
246
|
initialData: 123,
|
|
@@ -269,14 +253,6 @@ describe('useQueries', () => {
|
|
|
269
253
|
expectTypeNotAny(a);
|
|
270
254
|
return parseInt(a);
|
|
271
255
|
},
|
|
272
|
-
onSuccess: (a) => {
|
|
273
|
-
expectType(a);
|
|
274
|
-
expectTypeNotAny(a);
|
|
275
|
-
},
|
|
276
|
-
onError: (e) => {
|
|
277
|
-
expectType(e);
|
|
278
|
-
expectTypeNotAny(e);
|
|
279
|
-
},
|
|
280
256
|
placeholderData: 'string',
|
|
281
257
|
// @ts-expect-error (initialData: string)
|
|
282
258
|
initialData: 123,
|
|
@@ -363,59 +339,37 @@ describe('useQueries', () => {
|
|
|
363
339
|
},
|
|
364
340
|
],
|
|
365
341
|
}));
|
|
366
|
-
// select
|
|
342
|
+
// select params are "indirectly" enforced
|
|
367
343
|
createQueries(() => ({
|
|
368
344
|
queries: [
|
|
369
345
|
// unfortunately TS will not suggest the type for you
|
|
370
346
|
{
|
|
371
347
|
queryKey: key1,
|
|
372
348
|
queryFn: () => 'string',
|
|
373
|
-
// @ts-expect-error (noImplicitAny)
|
|
374
|
-
onSuccess: (a) => null,
|
|
375
|
-
// @ts-expect-error (noImplicitAny)
|
|
376
|
-
onSettled: (a) => null,
|
|
377
349
|
},
|
|
378
350
|
// however you can add a type to the callback
|
|
379
351
|
{
|
|
380
352
|
queryKey: key2,
|
|
381
353
|
queryFn: () => 'string',
|
|
382
|
-
onSuccess: (a) => {
|
|
383
|
-
expectType(a);
|
|
384
|
-
expectTypeNotAny(a);
|
|
385
|
-
},
|
|
386
|
-
onSettled: (a) => {
|
|
387
|
-
expectType(a);
|
|
388
|
-
expectTypeNotAny(a);
|
|
389
|
-
},
|
|
390
354
|
},
|
|
391
355
|
// the type you do pass is enforced
|
|
392
356
|
{
|
|
393
357
|
queryKey: key3,
|
|
394
358
|
queryFn: () => 'string',
|
|
395
|
-
// @ts-expect-error (only accepts string)
|
|
396
|
-
onSuccess: (a) => null,
|
|
397
359
|
},
|
|
398
360
|
{
|
|
399
361
|
queryKey: key4,
|
|
400
362
|
queryFn: () => 'string',
|
|
401
363
|
select: (a) => parseInt(a),
|
|
402
|
-
// @ts-expect-error (select is defined => only accepts number)
|
|
403
|
-
onSuccess: (a) => null,
|
|
404
|
-
onSettled: (a) => {
|
|
405
|
-
expectType(a);
|
|
406
|
-
expectTypeNotAny(a);
|
|
407
|
-
},
|
|
408
364
|
},
|
|
409
365
|
],
|
|
410
366
|
}));
|
|
411
367
|
// callbacks are also indirectly enforced with Array.map
|
|
412
368
|
createQueries(() => ({
|
|
413
|
-
// @ts-expect-error (onSuccess only accepts string)
|
|
414
369
|
queries: Array(50).map((_, i) => ({
|
|
415
370
|
queryKey: ['key', i],
|
|
416
371
|
queryFn: () => i + 10,
|
|
417
372
|
select: (data) => data.toString(),
|
|
418
|
-
onSuccess: (_data) => null,
|
|
419
373
|
})),
|
|
420
374
|
}));
|
|
421
375
|
createQueries(() => ({
|
|
@@ -423,7 +377,6 @@ describe('useQueries', () => {
|
|
|
423
377
|
queryKey: ['key', i],
|
|
424
378
|
queryFn: () => i + 10,
|
|
425
379
|
select: (data) => data.toString(),
|
|
426
|
-
onSuccess: (_data) => null,
|
|
427
380
|
})),
|
|
428
381
|
}));
|
|
429
382
|
// results inference works when all the handlers are defined
|
|
@@ -432,32 +385,15 @@ describe('useQueries', () => {
|
|
|
432
385
|
{
|
|
433
386
|
queryKey: key1,
|
|
434
387
|
queryFn: () => 'string',
|
|
435
|
-
// @ts-expect-error (noImplicitAny)
|
|
436
|
-
onSuccess: (a) => null,
|
|
437
|
-
// @ts-expect-error (noImplicitAny)
|
|
438
|
-
onSettled: (a) => null,
|
|
439
388
|
},
|
|
440
389
|
{
|
|
441
390
|
queryKey: key2,
|
|
442
391
|
queryFn: () => 'string',
|
|
443
|
-
onSuccess: (a) => {
|
|
444
|
-
expectType(a);
|
|
445
|
-
expectTypeNotAny(a);
|
|
446
|
-
},
|
|
447
|
-
onSettled: (a) => {
|
|
448
|
-
expectType(a);
|
|
449
|
-
expectTypeNotAny(a);
|
|
450
|
-
},
|
|
451
392
|
},
|
|
452
393
|
{
|
|
453
394
|
queryKey: key4,
|
|
454
395
|
queryFn: () => 'string',
|
|
455
396
|
select: (a) => parseInt(a),
|
|
456
|
-
onSuccess: (_a) => null,
|
|
457
|
-
onSettled: (a) => {
|
|
458
|
-
expectType(a);
|
|
459
|
-
expectTypeNotAny(a);
|
|
460
|
-
},
|
|
461
397
|
},
|
|
462
398
|
],
|
|
463
399
|
}));
|
|
@@ -470,12 +406,6 @@ describe('useQueries', () => {
|
|
|
470
406
|
{
|
|
471
407
|
queryKey: key1,
|
|
472
408
|
queryFn: () => Promise.resolve('string'),
|
|
473
|
-
onSuccess: (a) => {
|
|
474
|
-
expectType(a);
|
|
475
|
-
expectTypeNotAny(a);
|
|
476
|
-
},
|
|
477
|
-
// @ts-expect-error (refuses to accept a Promise)
|
|
478
|
-
onSettled: (a) => null,
|
|
479
409
|
},
|
|
480
410
|
],
|
|
481
411
|
}));
|
|
@@ -555,11 +485,10 @@ describe('useQueries', () => {
|
|
|
555
485
|
queries: queries.map(
|
|
556
486
|
// no need to type the mapped query
|
|
557
487
|
(query) => {
|
|
558
|
-
const { queryFn: fn, queryKey: key
|
|
488
|
+
const { queryFn: fn, queryKey: key } = query;
|
|
559
489
|
expectType(fn);
|
|
560
490
|
return {
|
|
561
491
|
queryKey: key,
|
|
562
|
-
onError: err,
|
|
563
492
|
queryFn: fn
|
|
564
493
|
? (ctx) => {
|
|
565
494
|
expectType(ctx.queryKey);
|