@effector-tanstack-query/core 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/createInfiniteQuery.ts"],"names":["warnMissingName","resolveReactiveRefetchInterval","createBaseQuery","InfiniteQueryObserver","createEvent","createStore","sidConfig","attach","sample","scopeBind","result","enabled"],"mappings":"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","file":"createInfiniteQuery.cjs","sourcesContent":["import { attach, createEvent, createStore, sample, scopeBind } from 'effector'\nimport { InfiniteQueryObserver } from '@tanstack/query-core'\nimport type {\n InfiniteData,\n QueryClient,\n QueryKey,\n} from '@tanstack/query-core'\nimport { createBaseQuery, sidConfig, warnMissingName } from './createBaseQuery'\nimport { resolveReactiveRefetchInterval } from './resolve'\nimport type {\n CreateInfiniteQueryOptions,\n InfiniteQueryResult,\n} from './types'\n\ntype Observer<TQueryFnData, TError, TData, TPageParam> = InfiniteQueryObserver<\n TQueryFnData,\n TError,\n TData,\n QueryKey,\n TPageParam\n>\n\ntype ObserverResult<TQueryFnData, TError, TData, TPageParam> = ReturnType<\n Observer<TQueryFnData, TError, TData, TPageParam>['getCurrentResult']\n>\n\nexport function createInfiniteQuery<\n TQueryFnData = unknown,\n TError = Error,\n TPageParam = unknown,\n TData = InfiniteData<TQueryFnData, TPageParam>,\n>(\n options: CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>,\n): InfiniteQueryResult<TData, TError, TPageParam>\nexport function createInfiniteQuery<\n TQueryFnData = unknown,\n TError = Error,\n TPageParam = unknown,\n TData = InfiniteData<TQueryFnData, TPageParam>,\n>(\n queryClient: QueryClient,\n options: CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>,\n): InfiniteQueryResult<TData, TError, TPageParam>\nexport function createInfiniteQuery<\n TQueryFnData = unknown,\n TError = Error,\n TPageParam = unknown,\n TData = InfiniteData<TQueryFnData, TPageParam>,\n>(\n arg1:\n | QueryClient\n | CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>,\n arg2?: CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>,\n): InfiniteQueryResult<TData, TError, TPageParam> {\n const [explicitClient, options] = parseInfiniteArgs<\n TQueryFnData,\n TError,\n TPageParam,\n TData\n >(arg1, arg2)\n const { queryKey, enabled, name, ...restOptions } = options\n\n if (!name) warnMissingName('createInfiniteQuery')\n\n const reactiveRefetchInterval = resolveReactiveRefetchInterval(\n (restOptions as { refetchInterval?: unknown }).refetchInterval,\n )\n if (reactiveRefetchInterval) {\n delete (restOptions as { refetchInterval?: unknown }).refetchInterval\n }\n\n const base = createBaseQuery<\n TData,\n TError,\n ObserverResult<TQueryFnData, TError, TData, TPageParam>,\n Observer<TQueryFnData, TError, TData, TPageParam>,\n {\n $hasNextPage: ReturnType<typeof createStore<boolean>>\n $hasPreviousPage: ReturnType<typeof createStore<boolean>>\n $isFetchingNextPage: ReturnType<typeof createStore<boolean>>\n $isFetchingPreviousPage: ReturnType<typeof createStore<boolean>>\n $isFetchNextPageError: ReturnType<typeof createStore<boolean>>\n $isFetchPreviousPageError: ReturnType<typeof createStore<boolean>>\n fetchNextPage: ReturnType<typeof createEvent<void>>\n fetchPreviousPage: ReturnType<typeof createEvent<void>>\n }\n >(\n explicitClient,\n { queryKey, enabled, name, reactiveRefetchInterval },\n {\n createObserver: (qc, { queryKey: key, enabled: isEnabled }) =>\n new InfiniteQueryObserver<\n TQueryFnData,\n TError,\n TData,\n QueryKey,\n TPageParam\n >(qc, {\n ...restOptions,\n queryKey: key,\n enabled: isEnabled,\n } as any),\n setupExtras: () => {\n const hasNextPageUpdated = createEvent<boolean>()\n const hasPreviousPageUpdated = createEvent<boolean>()\n const isFetchingNextPageUpdated = createEvent<boolean>()\n const isFetchingPreviousPageUpdated = createEvent<boolean>()\n const isFetchNextPageErrorUpdated = createEvent<boolean>()\n const isFetchPreviousPageErrorUpdated = createEvent<boolean>()\n\n const $hasNextPage = createStore(false, {\n ...sidConfig(name, '$hasNextPage'),\n }).on(hasNextPageUpdated, (_, v) => v)\n const $hasPreviousPage = createStore(false, {\n ...sidConfig(name, '$hasPreviousPage'),\n }).on(hasPreviousPageUpdated, (_, v) => v)\n const $isFetchingNextPage = createStore(false, {\n ...sidConfig(name, '$isFetchingNextPage'),\n }).on(isFetchingNextPageUpdated, (_, v) => v)\n const $isFetchingPreviousPage = createStore(false, {\n ...sidConfig(name, '$isFetchingPreviousPage'),\n }).on(isFetchingPreviousPageUpdated, (_, v) => v)\n const $isFetchNextPageError = createStore(false, {\n ...sidConfig(name, '$isFetchNextPageError'),\n }).on(isFetchNextPageErrorUpdated, (_, v) => v)\n const $isFetchPreviousPageError = createStore(false, {\n ...sidConfig(name, '$isFetchPreviousPageError'),\n }).on(isFetchPreviousPageErrorUpdated, (_, v) => v)\n\n const fetchNextPage = createEvent<void>()\n const fetchPreviousPage = createEvent<void>()\n\n return {\n stores: {\n $hasNextPage,\n $hasPreviousPage,\n $isFetchingNextPage,\n $isFetchingPreviousPage,\n $isFetchNextPageError,\n $isFetchPreviousPageError,\n fetchNextPage,\n fetchPreviousPage,\n },\n // Wire fetchNextPage / fetchPreviousPage as scope-aware effects via\n // attach over $observer — same pattern as the rest of createBaseQuery.\n setupEffects: ({ $observer }) => {\n const fetchNextPageFx = attach({\n source: $observer,\n effect: (observer) => {\n if (!observer) return\n observer.fetchNextPage()\n },\n })\n sample({ clock: fetchNextPage, target: fetchNextPageFx })\n\n const fetchPreviousPageFx = attach({\n source: $observer,\n effect: (observer) => {\n if (!observer) return\n observer.fetchPreviousPage()\n },\n })\n sample({ clock: fetchPreviousPage, target: fetchPreviousPageFx })\n },\n bindDispatcher: () => {\n const dispatchHasNextPage = scopeBind(hasNextPageUpdated, {\n safe: true,\n })\n const dispatchHasPreviousPage = scopeBind(hasPreviousPageUpdated, {\n safe: true,\n })\n const dispatchIsFetchingNextPage = scopeBind(\n isFetchingNextPageUpdated,\n { safe: true },\n )\n const dispatchIsFetchingPreviousPage = scopeBind(\n isFetchingPreviousPageUpdated,\n { safe: true },\n )\n const dispatchIsFetchNextPageError = scopeBind(\n isFetchNextPageErrorUpdated,\n { safe: true },\n )\n const dispatchIsFetchPreviousPageError = scopeBind(\n isFetchPreviousPageErrorUpdated,\n { safe: true },\n )\n\n return (result) => {\n dispatchHasNextPage(result.hasNextPage)\n dispatchHasPreviousPage(result.hasPreviousPage)\n dispatchIsFetchingNextPage(result.isFetchingNextPage)\n dispatchIsFetchingPreviousPage(result.isFetchingPreviousPage)\n dispatchIsFetchNextPageError(result.isFetchNextPageError)\n dispatchIsFetchPreviousPageError(result.isFetchPreviousPageError)\n }\n },\n }\n },\n },\n )\n\n // See createQuery.prefetch — same contract, but uses fetchInfiniteQuery so\n // the first page is fetched + cached on the server.\n const prefetch = createEvent<void>()\n const prefetchFx = attach({\n source: {\n qc: base.$queryClient,\n key: base.$resolvedKey,\n enabled: base.$enabled,\n },\n effect: ({ qc, key, enabled }) => {\n if (!qc || !enabled) return\n return qc.fetchInfiniteQuery({\n ...restOptions,\n queryKey: key,\n } as any)\n },\n })\n sample({ clock: prefetch, target: prefetchFx })\n\n const result: InfiniteQueryResult<TData, TError, TPageParam> = {\n $data: base.$data,\n $error: base.$error,\n $status: base.$status,\n $isPending: base.$isPending,\n $isFetching: base.$isFetching,\n $isSuccess: base.$isSuccess,\n $isError: base.$isError,\n $isPlaceholderData: base.$isPlaceholderData,\n $fetchStatus: base.$fetchStatus,\n $hasNextPage: base.$hasNextPage,\n $hasPreviousPage: base.$hasPreviousPage,\n $isFetchingNextPage: base.$isFetchingNextPage,\n $isFetchingPreviousPage: base.$isFetchingPreviousPage,\n $isFetchNextPageError: base.$isFetchNextPageError,\n $isFetchPreviousPageError: base.$isFetchPreviousPageError,\n $observer: base.$observer,\n $queryClient: base.$queryClient,\n fetchNextPage: base.fetchNextPage,\n fetchPreviousPage: base.fetchPreviousPage,\n refresh: base.refresh,\n prefetch,\n mounted: base.mounted,\n unmounted: base.unmounted,\n }\n\n Object.defineProperty(result, '__createObserver', {\n enumerable: false,\n value: (qc: QueryClient, init: { queryKey: any; enabled: boolean }) =>\n new InfiniteQueryObserver<\n TQueryFnData,\n TError,\n TData,\n QueryKey,\n TPageParam\n >(qc, {\n ...restOptions,\n queryKey: init.queryKey,\n enabled: init.enabled,\n } as any),\n })\n Object.defineProperty(result, '__resolvedKey', {\n enumerable: false,\n value: base.$resolvedKey,\n })\n Object.defineProperty(result, '__enabled', {\n enumerable: false,\n value: base.$enabled,\n })\n\n return result\n}\n\nfunction parseInfiniteArgs<TQueryFnData, TError, TPageParam, TData>(\n arg1:\n | QueryClient\n | CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>,\n arg2?: CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>,\n): [\n QueryClient | null,\n CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>,\n] {\n if (arg2 !== undefined) {\n return [arg1 as QueryClient, arg2]\n }\n return [\n null,\n arg1 as CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>,\n ]\n}\n"]}
1
+ {"version":3,"sources":["../src/createInfiniteQuery.ts"],"names":["warnMissingName","resolveReactiveRefetchInterval","createBaseQuery","InfiniteQueryObserver","createEvent","createStore","sidConfig","attach","sample","scopeBind","result","enabled"],"mappings":"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","file":"createInfiniteQuery.cjs","sourcesContent":["import { attach, createEvent, createStore, sample, scopeBind } from 'effector'\nimport { InfiniteQueryObserver } from '@tanstack/query-core'\nimport type {\n InfiniteData,\n QueryClient,\n QueryKey,\n} from '@tanstack/query-core'\nimport { createBaseQuery, sidConfig, warnMissingName } from './createBaseQuery'\nimport { resolveReactiveRefetchInterval } from './resolve'\nimport type {\n CreateInfiniteQueryOptions,\n EffectorQueryKey,\n InfiniteQueryResult,\n} from './types'\n\ntype Observer<TQueryFnData, TError, TData, TPageParam> = InfiniteQueryObserver<\n TQueryFnData,\n TError,\n TData,\n QueryKey,\n TPageParam\n>\n\ntype ObserverResult<TQueryFnData, TError, TData, TPageParam> = ReturnType<\n Observer<TQueryFnData, TError, TData, TPageParam>['getCurrentResult']\n>\n\nexport function createInfiniteQuery<\n TQueryFnData = unknown,\n TError = Error,\n TPageParam = unknown,\n TData = InfiniteData<TQueryFnData, TPageParam>,\n const TQueryKey extends EffectorQueryKey = EffectorQueryKey,\n>(\n options: CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >,\n): InfiniteQueryResult<TData, TError, TPageParam>\nexport function createInfiniteQuery<\n TQueryFnData = unknown,\n TError = Error,\n TPageParam = unknown,\n TData = InfiniteData<TQueryFnData, TPageParam>,\n const TQueryKey extends EffectorQueryKey = EffectorQueryKey,\n>(\n queryClient: QueryClient,\n options: CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >,\n): InfiniteQueryResult<TData, TError, TPageParam>\nexport function createInfiniteQuery<\n TQueryFnData = unknown,\n TError = Error,\n TPageParam = unknown,\n TData = InfiniteData<TQueryFnData, TPageParam>,\n const TQueryKey extends EffectorQueryKey = EffectorQueryKey,\n>(\n arg1:\n | QueryClient\n | CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >,\n arg2?: CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >,\n): InfiniteQueryResult<TData, TError, TPageParam> {\n const [explicitClient, options] = parseInfiniteArgs<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >(arg1, arg2)\n const { queryKey, enabled, name, ...restOptions } = options\n\n if (!name) warnMissingName('createInfiniteQuery')\n\n const reactiveRefetchInterval = resolveReactiveRefetchInterval(\n (restOptions as { refetchInterval?: unknown }).refetchInterval,\n )\n if (reactiveRefetchInterval) {\n delete (restOptions as { refetchInterval?: unknown }).refetchInterval\n }\n\n const base = createBaseQuery<\n TData,\n TError,\n ObserverResult<TQueryFnData, TError, TData, TPageParam>,\n Observer<TQueryFnData, TError, TData, TPageParam>,\n {\n $hasNextPage: ReturnType<typeof createStore<boolean>>\n $hasPreviousPage: ReturnType<typeof createStore<boolean>>\n $isFetchingNextPage: ReturnType<typeof createStore<boolean>>\n $isFetchingPreviousPage: ReturnType<typeof createStore<boolean>>\n $isFetchNextPageError: ReturnType<typeof createStore<boolean>>\n $isFetchPreviousPageError: ReturnType<typeof createStore<boolean>>\n fetchNextPage: ReturnType<typeof createEvent<void>>\n fetchPreviousPage: ReturnType<typeof createEvent<void>>\n }\n >(\n explicitClient,\n { queryKey, enabled, name, reactiveRefetchInterval },\n {\n createObserver: (qc, { queryKey: key, enabled: isEnabled }) =>\n new InfiniteQueryObserver<\n TQueryFnData,\n TError,\n TData,\n QueryKey,\n TPageParam\n >(qc, {\n ...restOptions,\n queryKey: key,\n enabled: isEnabled,\n } as any),\n setupExtras: () => {\n const hasNextPageUpdated = createEvent<boolean>()\n const hasPreviousPageUpdated = createEvent<boolean>()\n const isFetchingNextPageUpdated = createEvent<boolean>()\n const isFetchingPreviousPageUpdated = createEvent<boolean>()\n const isFetchNextPageErrorUpdated = createEvent<boolean>()\n const isFetchPreviousPageErrorUpdated = createEvent<boolean>()\n\n const $hasNextPage = createStore(false, {\n ...sidConfig(name, '$hasNextPage'),\n }).on(hasNextPageUpdated, (_, v) => v)\n const $hasPreviousPage = createStore(false, {\n ...sidConfig(name, '$hasPreviousPage'),\n }).on(hasPreviousPageUpdated, (_, v) => v)\n const $isFetchingNextPage = createStore(false, {\n ...sidConfig(name, '$isFetchingNextPage'),\n }).on(isFetchingNextPageUpdated, (_, v) => v)\n const $isFetchingPreviousPage = createStore(false, {\n ...sidConfig(name, '$isFetchingPreviousPage'),\n }).on(isFetchingPreviousPageUpdated, (_, v) => v)\n const $isFetchNextPageError = createStore(false, {\n ...sidConfig(name, '$isFetchNextPageError'),\n }).on(isFetchNextPageErrorUpdated, (_, v) => v)\n const $isFetchPreviousPageError = createStore(false, {\n ...sidConfig(name, '$isFetchPreviousPageError'),\n }).on(isFetchPreviousPageErrorUpdated, (_, v) => v)\n\n const fetchNextPage = createEvent<void>()\n const fetchPreviousPage = createEvent<void>()\n\n return {\n stores: {\n $hasNextPage,\n $hasPreviousPage,\n $isFetchingNextPage,\n $isFetchingPreviousPage,\n $isFetchNextPageError,\n $isFetchPreviousPageError,\n fetchNextPage,\n fetchPreviousPage,\n },\n // Wire fetchNextPage / fetchPreviousPage as scope-aware effects via\n // attach over $observer — same pattern as the rest of createBaseQuery.\n setupEffects: ({ $observer }) => {\n const fetchNextPageFx = attach({\n source: $observer,\n effect: (observer) => {\n if (!observer) return\n observer.fetchNextPage()\n },\n })\n sample({ clock: fetchNextPage, target: fetchNextPageFx })\n\n const fetchPreviousPageFx = attach({\n source: $observer,\n effect: (observer) => {\n if (!observer) return\n observer.fetchPreviousPage()\n },\n })\n sample({ clock: fetchPreviousPage, target: fetchPreviousPageFx })\n },\n bindDispatcher: () => {\n const dispatchHasNextPage = scopeBind(hasNextPageUpdated, {\n safe: true,\n })\n const dispatchHasPreviousPage = scopeBind(hasPreviousPageUpdated, {\n safe: true,\n })\n const dispatchIsFetchingNextPage = scopeBind(\n isFetchingNextPageUpdated,\n { safe: true },\n )\n const dispatchIsFetchingPreviousPage = scopeBind(\n isFetchingPreviousPageUpdated,\n { safe: true },\n )\n const dispatchIsFetchNextPageError = scopeBind(\n isFetchNextPageErrorUpdated,\n { safe: true },\n )\n const dispatchIsFetchPreviousPageError = scopeBind(\n isFetchPreviousPageErrorUpdated,\n { safe: true },\n )\n\n return (result) => {\n dispatchHasNextPage(result.hasNextPage)\n dispatchHasPreviousPage(result.hasPreviousPage)\n dispatchIsFetchingNextPage(result.isFetchingNextPage)\n dispatchIsFetchingPreviousPage(result.isFetchingPreviousPage)\n dispatchIsFetchNextPageError(result.isFetchNextPageError)\n dispatchIsFetchPreviousPageError(result.isFetchPreviousPageError)\n }\n },\n }\n },\n },\n )\n\n // See createQuery.prefetch — same contract, but uses fetchInfiniteQuery so\n // the first page is fetched + cached on the server.\n const prefetch = createEvent<void>()\n const prefetchFx = attach({\n source: {\n qc: base.$queryClient,\n key: base.$resolvedKey,\n enabled: base.$enabled,\n },\n effect: ({ qc, key, enabled }) => {\n if (!qc || !enabled) return\n return qc.fetchInfiniteQuery({\n ...restOptions,\n queryKey: key,\n } as any)\n },\n })\n sample({ clock: prefetch, target: prefetchFx })\n\n const result: InfiniteQueryResult<TData, TError, TPageParam> = {\n $data: base.$data,\n $error: base.$error,\n $status: base.$status,\n $isPending: base.$isPending,\n $isFetching: base.$isFetching,\n $isSuccess: base.$isSuccess,\n $isError: base.$isError,\n $isPlaceholderData: base.$isPlaceholderData,\n $fetchStatus: base.$fetchStatus,\n $hasNextPage: base.$hasNextPage,\n $hasPreviousPage: base.$hasPreviousPage,\n $isFetchingNextPage: base.$isFetchingNextPage,\n $isFetchingPreviousPage: base.$isFetchingPreviousPage,\n $isFetchNextPageError: base.$isFetchNextPageError,\n $isFetchPreviousPageError: base.$isFetchPreviousPageError,\n $observer: base.$observer,\n $queryClient: base.$queryClient,\n fetchNextPage: base.fetchNextPage,\n fetchPreviousPage: base.fetchPreviousPage,\n refresh: base.refresh,\n prefetch,\n mounted: base.mounted,\n unmounted: base.unmounted,\n }\n\n Object.defineProperty(result, '__createObserver', {\n enumerable: false,\n value: (qc: QueryClient, init: { queryKey: any; enabled: boolean }) =>\n new InfiniteQueryObserver<\n TQueryFnData,\n TError,\n TData,\n QueryKey,\n TPageParam\n >(qc, {\n ...restOptions,\n queryKey: init.queryKey,\n enabled: init.enabled,\n } as any),\n })\n Object.defineProperty(result, '__resolvedKey', {\n enumerable: false,\n value: base.$resolvedKey,\n })\n Object.defineProperty(result, '__enabled', {\n enumerable: false,\n value: base.$enabled,\n })\n\n return result\n}\n\nfunction parseInfiniteArgs<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey extends EffectorQueryKey,\n>(\n arg1:\n | QueryClient\n | CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >,\n arg2?: CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >,\n): [\n QueryClient | null,\n CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >,\n] {\n if (arg2 !== undefined) {\n return [arg1 as QueryClient, arg2]\n }\n return [\n null,\n arg1 as CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >,\n ]\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import { InfiniteData, QueryClient } from '@tanstack/query-core';
2
- import { CreateInfiniteQueryOptions, InfiniteQueryResult } from './types.cjs';
2
+ import { EffectorQueryKey, CreateInfiniteQueryOptions, InfiniteQueryResult } from './types.cjs';
3
3
  import 'effector';
4
4
 
5
- declare function createInfiniteQuery<TQueryFnData = unknown, TError = Error, TPageParam = unknown, TData = InfiniteData<TQueryFnData, TPageParam>>(options: CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>): InfiniteQueryResult<TData, TError, TPageParam>;
6
- declare function createInfiniteQuery<TQueryFnData = unknown, TError = Error, TPageParam = unknown, TData = InfiniteData<TQueryFnData, TPageParam>>(queryClient: QueryClient, options: CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>): InfiniteQueryResult<TData, TError, TPageParam>;
5
+ declare function createInfiniteQuery<TQueryFnData = unknown, TError = Error, TPageParam = unknown, TData = InfiniteData<TQueryFnData, TPageParam>, const TQueryKey extends EffectorQueryKey = EffectorQueryKey>(options: CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData, TQueryKey>): InfiniteQueryResult<TData, TError, TPageParam>;
6
+ declare function createInfiniteQuery<TQueryFnData = unknown, TError = Error, TPageParam = unknown, TData = InfiniteData<TQueryFnData, TPageParam>, const TQueryKey extends EffectorQueryKey = EffectorQueryKey>(queryClient: QueryClient, options: CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData, TQueryKey>): InfiniteQueryResult<TData, TError, TPageParam>;
7
7
 
8
8
  export { createInfiniteQuery };
@@ -1,8 +1,8 @@
1
1
  import { InfiniteData, QueryClient } from '@tanstack/query-core';
2
- import { CreateInfiniteQueryOptions, InfiniteQueryResult } from './types.js';
2
+ import { EffectorQueryKey, CreateInfiniteQueryOptions, InfiniteQueryResult } from './types.js';
3
3
  import 'effector';
4
4
 
5
- declare function createInfiniteQuery<TQueryFnData = unknown, TError = Error, TPageParam = unknown, TData = InfiniteData<TQueryFnData, TPageParam>>(options: CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>): InfiniteQueryResult<TData, TError, TPageParam>;
6
- declare function createInfiniteQuery<TQueryFnData = unknown, TError = Error, TPageParam = unknown, TData = InfiniteData<TQueryFnData, TPageParam>>(queryClient: QueryClient, options: CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>): InfiniteQueryResult<TData, TError, TPageParam>;
5
+ declare function createInfiniteQuery<TQueryFnData = unknown, TError = Error, TPageParam = unknown, TData = InfiniteData<TQueryFnData, TPageParam>, const TQueryKey extends EffectorQueryKey = EffectorQueryKey>(options: CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData, TQueryKey>): InfiniteQueryResult<TData, TError, TPageParam>;
6
+ declare function createInfiniteQuery<TQueryFnData = unknown, TError = Error, TPageParam = unknown, TData = InfiniteData<TQueryFnData, TPageParam>, const TQueryKey extends EffectorQueryKey = EffectorQueryKey>(queryClient: QueryClient, options: CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData, TQueryKey>): InfiniteQueryResult<TData, TError, TPageParam>;
7
7
 
8
8
  export { createInfiniteQuery };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/createInfiniteQuery.ts"],"names":["result","enabled"],"mappings":"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","file":"createInfiniteQuery.js","sourcesContent":["import { attach, createEvent, createStore, sample, scopeBind } from 'effector'\nimport { InfiniteQueryObserver } from '@tanstack/query-core'\nimport type {\n InfiniteData,\n QueryClient,\n QueryKey,\n} from '@tanstack/query-core'\nimport { createBaseQuery, sidConfig, warnMissingName } from './createBaseQuery'\nimport { resolveReactiveRefetchInterval } from './resolve'\nimport type {\n CreateInfiniteQueryOptions,\n InfiniteQueryResult,\n} from './types'\n\ntype Observer<TQueryFnData, TError, TData, TPageParam> = InfiniteQueryObserver<\n TQueryFnData,\n TError,\n TData,\n QueryKey,\n TPageParam\n>\n\ntype ObserverResult<TQueryFnData, TError, TData, TPageParam> = ReturnType<\n Observer<TQueryFnData, TError, TData, TPageParam>['getCurrentResult']\n>\n\nexport function createInfiniteQuery<\n TQueryFnData = unknown,\n TError = Error,\n TPageParam = unknown,\n TData = InfiniteData<TQueryFnData, TPageParam>,\n>(\n options: CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>,\n): InfiniteQueryResult<TData, TError, TPageParam>\nexport function createInfiniteQuery<\n TQueryFnData = unknown,\n TError = Error,\n TPageParam = unknown,\n TData = InfiniteData<TQueryFnData, TPageParam>,\n>(\n queryClient: QueryClient,\n options: CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>,\n): InfiniteQueryResult<TData, TError, TPageParam>\nexport function createInfiniteQuery<\n TQueryFnData = unknown,\n TError = Error,\n TPageParam = unknown,\n TData = InfiniteData<TQueryFnData, TPageParam>,\n>(\n arg1:\n | QueryClient\n | CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>,\n arg2?: CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>,\n): InfiniteQueryResult<TData, TError, TPageParam> {\n const [explicitClient, options] = parseInfiniteArgs<\n TQueryFnData,\n TError,\n TPageParam,\n TData\n >(arg1, arg2)\n const { queryKey, enabled, name, ...restOptions } = options\n\n if (!name) warnMissingName('createInfiniteQuery')\n\n const reactiveRefetchInterval = resolveReactiveRefetchInterval(\n (restOptions as { refetchInterval?: unknown }).refetchInterval,\n )\n if (reactiveRefetchInterval) {\n delete (restOptions as { refetchInterval?: unknown }).refetchInterval\n }\n\n const base = createBaseQuery<\n TData,\n TError,\n ObserverResult<TQueryFnData, TError, TData, TPageParam>,\n Observer<TQueryFnData, TError, TData, TPageParam>,\n {\n $hasNextPage: ReturnType<typeof createStore<boolean>>\n $hasPreviousPage: ReturnType<typeof createStore<boolean>>\n $isFetchingNextPage: ReturnType<typeof createStore<boolean>>\n $isFetchingPreviousPage: ReturnType<typeof createStore<boolean>>\n $isFetchNextPageError: ReturnType<typeof createStore<boolean>>\n $isFetchPreviousPageError: ReturnType<typeof createStore<boolean>>\n fetchNextPage: ReturnType<typeof createEvent<void>>\n fetchPreviousPage: ReturnType<typeof createEvent<void>>\n }\n >(\n explicitClient,\n { queryKey, enabled, name, reactiveRefetchInterval },\n {\n createObserver: (qc, { queryKey: key, enabled: isEnabled }) =>\n new InfiniteQueryObserver<\n TQueryFnData,\n TError,\n TData,\n QueryKey,\n TPageParam\n >(qc, {\n ...restOptions,\n queryKey: key,\n enabled: isEnabled,\n } as any),\n setupExtras: () => {\n const hasNextPageUpdated = createEvent<boolean>()\n const hasPreviousPageUpdated = createEvent<boolean>()\n const isFetchingNextPageUpdated = createEvent<boolean>()\n const isFetchingPreviousPageUpdated = createEvent<boolean>()\n const isFetchNextPageErrorUpdated = createEvent<boolean>()\n const isFetchPreviousPageErrorUpdated = createEvent<boolean>()\n\n const $hasNextPage = createStore(false, {\n ...sidConfig(name, '$hasNextPage'),\n }).on(hasNextPageUpdated, (_, v) => v)\n const $hasPreviousPage = createStore(false, {\n ...sidConfig(name, '$hasPreviousPage'),\n }).on(hasPreviousPageUpdated, (_, v) => v)\n const $isFetchingNextPage = createStore(false, {\n ...sidConfig(name, '$isFetchingNextPage'),\n }).on(isFetchingNextPageUpdated, (_, v) => v)\n const $isFetchingPreviousPage = createStore(false, {\n ...sidConfig(name, '$isFetchingPreviousPage'),\n }).on(isFetchingPreviousPageUpdated, (_, v) => v)\n const $isFetchNextPageError = createStore(false, {\n ...sidConfig(name, '$isFetchNextPageError'),\n }).on(isFetchNextPageErrorUpdated, (_, v) => v)\n const $isFetchPreviousPageError = createStore(false, {\n ...sidConfig(name, '$isFetchPreviousPageError'),\n }).on(isFetchPreviousPageErrorUpdated, (_, v) => v)\n\n const fetchNextPage = createEvent<void>()\n const fetchPreviousPage = createEvent<void>()\n\n return {\n stores: {\n $hasNextPage,\n $hasPreviousPage,\n $isFetchingNextPage,\n $isFetchingPreviousPage,\n $isFetchNextPageError,\n $isFetchPreviousPageError,\n fetchNextPage,\n fetchPreviousPage,\n },\n // Wire fetchNextPage / fetchPreviousPage as scope-aware effects via\n // attach over $observer — same pattern as the rest of createBaseQuery.\n setupEffects: ({ $observer }) => {\n const fetchNextPageFx = attach({\n source: $observer,\n effect: (observer) => {\n if (!observer) return\n observer.fetchNextPage()\n },\n })\n sample({ clock: fetchNextPage, target: fetchNextPageFx })\n\n const fetchPreviousPageFx = attach({\n source: $observer,\n effect: (observer) => {\n if (!observer) return\n observer.fetchPreviousPage()\n },\n })\n sample({ clock: fetchPreviousPage, target: fetchPreviousPageFx })\n },\n bindDispatcher: () => {\n const dispatchHasNextPage = scopeBind(hasNextPageUpdated, {\n safe: true,\n })\n const dispatchHasPreviousPage = scopeBind(hasPreviousPageUpdated, {\n safe: true,\n })\n const dispatchIsFetchingNextPage = scopeBind(\n isFetchingNextPageUpdated,\n { safe: true },\n )\n const dispatchIsFetchingPreviousPage = scopeBind(\n isFetchingPreviousPageUpdated,\n { safe: true },\n )\n const dispatchIsFetchNextPageError = scopeBind(\n isFetchNextPageErrorUpdated,\n { safe: true },\n )\n const dispatchIsFetchPreviousPageError = scopeBind(\n isFetchPreviousPageErrorUpdated,\n { safe: true },\n )\n\n return (result) => {\n dispatchHasNextPage(result.hasNextPage)\n dispatchHasPreviousPage(result.hasPreviousPage)\n dispatchIsFetchingNextPage(result.isFetchingNextPage)\n dispatchIsFetchingPreviousPage(result.isFetchingPreviousPage)\n dispatchIsFetchNextPageError(result.isFetchNextPageError)\n dispatchIsFetchPreviousPageError(result.isFetchPreviousPageError)\n }\n },\n }\n },\n },\n )\n\n // See createQuery.prefetch — same contract, but uses fetchInfiniteQuery so\n // the first page is fetched + cached on the server.\n const prefetch = createEvent<void>()\n const prefetchFx = attach({\n source: {\n qc: base.$queryClient,\n key: base.$resolvedKey,\n enabled: base.$enabled,\n },\n effect: ({ qc, key, enabled }) => {\n if (!qc || !enabled) return\n return qc.fetchInfiniteQuery({\n ...restOptions,\n queryKey: key,\n } as any)\n },\n })\n sample({ clock: prefetch, target: prefetchFx })\n\n const result: InfiniteQueryResult<TData, TError, TPageParam> = {\n $data: base.$data,\n $error: base.$error,\n $status: base.$status,\n $isPending: base.$isPending,\n $isFetching: base.$isFetching,\n $isSuccess: base.$isSuccess,\n $isError: base.$isError,\n $isPlaceholderData: base.$isPlaceholderData,\n $fetchStatus: base.$fetchStatus,\n $hasNextPage: base.$hasNextPage,\n $hasPreviousPage: base.$hasPreviousPage,\n $isFetchingNextPage: base.$isFetchingNextPage,\n $isFetchingPreviousPage: base.$isFetchingPreviousPage,\n $isFetchNextPageError: base.$isFetchNextPageError,\n $isFetchPreviousPageError: base.$isFetchPreviousPageError,\n $observer: base.$observer,\n $queryClient: base.$queryClient,\n fetchNextPage: base.fetchNextPage,\n fetchPreviousPage: base.fetchPreviousPage,\n refresh: base.refresh,\n prefetch,\n mounted: base.mounted,\n unmounted: base.unmounted,\n }\n\n Object.defineProperty(result, '__createObserver', {\n enumerable: false,\n value: (qc: QueryClient, init: { queryKey: any; enabled: boolean }) =>\n new InfiniteQueryObserver<\n TQueryFnData,\n TError,\n TData,\n QueryKey,\n TPageParam\n >(qc, {\n ...restOptions,\n queryKey: init.queryKey,\n enabled: init.enabled,\n } as any),\n })\n Object.defineProperty(result, '__resolvedKey', {\n enumerable: false,\n value: base.$resolvedKey,\n })\n Object.defineProperty(result, '__enabled', {\n enumerable: false,\n value: base.$enabled,\n })\n\n return result\n}\n\nfunction parseInfiniteArgs<TQueryFnData, TError, TPageParam, TData>(\n arg1:\n | QueryClient\n | CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>,\n arg2?: CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>,\n): [\n QueryClient | null,\n CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>,\n] {\n if (arg2 !== undefined) {\n return [arg1 as QueryClient, arg2]\n }\n return [\n null,\n arg1 as CreateInfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData>,\n ]\n}\n"]}
1
+ {"version":3,"sources":["../src/createInfiniteQuery.ts"],"names":["result","enabled"],"mappings":"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","file":"createInfiniteQuery.js","sourcesContent":["import { attach, createEvent, createStore, sample, scopeBind } from 'effector'\nimport { InfiniteQueryObserver } from '@tanstack/query-core'\nimport type {\n InfiniteData,\n QueryClient,\n QueryKey,\n} from '@tanstack/query-core'\nimport { createBaseQuery, sidConfig, warnMissingName } from './createBaseQuery'\nimport { resolveReactiveRefetchInterval } from './resolve'\nimport type {\n CreateInfiniteQueryOptions,\n EffectorQueryKey,\n InfiniteQueryResult,\n} from './types'\n\ntype Observer<TQueryFnData, TError, TData, TPageParam> = InfiniteQueryObserver<\n TQueryFnData,\n TError,\n TData,\n QueryKey,\n TPageParam\n>\n\ntype ObserverResult<TQueryFnData, TError, TData, TPageParam> = ReturnType<\n Observer<TQueryFnData, TError, TData, TPageParam>['getCurrentResult']\n>\n\nexport function createInfiniteQuery<\n TQueryFnData = unknown,\n TError = Error,\n TPageParam = unknown,\n TData = InfiniteData<TQueryFnData, TPageParam>,\n const TQueryKey extends EffectorQueryKey = EffectorQueryKey,\n>(\n options: CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >,\n): InfiniteQueryResult<TData, TError, TPageParam>\nexport function createInfiniteQuery<\n TQueryFnData = unknown,\n TError = Error,\n TPageParam = unknown,\n TData = InfiniteData<TQueryFnData, TPageParam>,\n const TQueryKey extends EffectorQueryKey = EffectorQueryKey,\n>(\n queryClient: QueryClient,\n options: CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >,\n): InfiniteQueryResult<TData, TError, TPageParam>\nexport function createInfiniteQuery<\n TQueryFnData = unknown,\n TError = Error,\n TPageParam = unknown,\n TData = InfiniteData<TQueryFnData, TPageParam>,\n const TQueryKey extends EffectorQueryKey = EffectorQueryKey,\n>(\n arg1:\n | QueryClient\n | CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >,\n arg2?: CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >,\n): InfiniteQueryResult<TData, TError, TPageParam> {\n const [explicitClient, options] = parseInfiniteArgs<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >(arg1, arg2)\n const { queryKey, enabled, name, ...restOptions } = options\n\n if (!name) warnMissingName('createInfiniteQuery')\n\n const reactiveRefetchInterval = resolveReactiveRefetchInterval(\n (restOptions as { refetchInterval?: unknown }).refetchInterval,\n )\n if (reactiveRefetchInterval) {\n delete (restOptions as { refetchInterval?: unknown }).refetchInterval\n }\n\n const base = createBaseQuery<\n TData,\n TError,\n ObserverResult<TQueryFnData, TError, TData, TPageParam>,\n Observer<TQueryFnData, TError, TData, TPageParam>,\n {\n $hasNextPage: ReturnType<typeof createStore<boolean>>\n $hasPreviousPage: ReturnType<typeof createStore<boolean>>\n $isFetchingNextPage: ReturnType<typeof createStore<boolean>>\n $isFetchingPreviousPage: ReturnType<typeof createStore<boolean>>\n $isFetchNextPageError: ReturnType<typeof createStore<boolean>>\n $isFetchPreviousPageError: ReturnType<typeof createStore<boolean>>\n fetchNextPage: ReturnType<typeof createEvent<void>>\n fetchPreviousPage: ReturnType<typeof createEvent<void>>\n }\n >(\n explicitClient,\n { queryKey, enabled, name, reactiveRefetchInterval },\n {\n createObserver: (qc, { queryKey: key, enabled: isEnabled }) =>\n new InfiniteQueryObserver<\n TQueryFnData,\n TError,\n TData,\n QueryKey,\n TPageParam\n >(qc, {\n ...restOptions,\n queryKey: key,\n enabled: isEnabled,\n } as any),\n setupExtras: () => {\n const hasNextPageUpdated = createEvent<boolean>()\n const hasPreviousPageUpdated = createEvent<boolean>()\n const isFetchingNextPageUpdated = createEvent<boolean>()\n const isFetchingPreviousPageUpdated = createEvent<boolean>()\n const isFetchNextPageErrorUpdated = createEvent<boolean>()\n const isFetchPreviousPageErrorUpdated = createEvent<boolean>()\n\n const $hasNextPage = createStore(false, {\n ...sidConfig(name, '$hasNextPage'),\n }).on(hasNextPageUpdated, (_, v) => v)\n const $hasPreviousPage = createStore(false, {\n ...sidConfig(name, '$hasPreviousPage'),\n }).on(hasPreviousPageUpdated, (_, v) => v)\n const $isFetchingNextPage = createStore(false, {\n ...sidConfig(name, '$isFetchingNextPage'),\n }).on(isFetchingNextPageUpdated, (_, v) => v)\n const $isFetchingPreviousPage = createStore(false, {\n ...sidConfig(name, '$isFetchingPreviousPage'),\n }).on(isFetchingPreviousPageUpdated, (_, v) => v)\n const $isFetchNextPageError = createStore(false, {\n ...sidConfig(name, '$isFetchNextPageError'),\n }).on(isFetchNextPageErrorUpdated, (_, v) => v)\n const $isFetchPreviousPageError = createStore(false, {\n ...sidConfig(name, '$isFetchPreviousPageError'),\n }).on(isFetchPreviousPageErrorUpdated, (_, v) => v)\n\n const fetchNextPage = createEvent<void>()\n const fetchPreviousPage = createEvent<void>()\n\n return {\n stores: {\n $hasNextPage,\n $hasPreviousPage,\n $isFetchingNextPage,\n $isFetchingPreviousPage,\n $isFetchNextPageError,\n $isFetchPreviousPageError,\n fetchNextPage,\n fetchPreviousPage,\n },\n // Wire fetchNextPage / fetchPreviousPage as scope-aware effects via\n // attach over $observer — same pattern as the rest of createBaseQuery.\n setupEffects: ({ $observer }) => {\n const fetchNextPageFx = attach({\n source: $observer,\n effect: (observer) => {\n if (!observer) return\n observer.fetchNextPage()\n },\n })\n sample({ clock: fetchNextPage, target: fetchNextPageFx })\n\n const fetchPreviousPageFx = attach({\n source: $observer,\n effect: (observer) => {\n if (!observer) return\n observer.fetchPreviousPage()\n },\n })\n sample({ clock: fetchPreviousPage, target: fetchPreviousPageFx })\n },\n bindDispatcher: () => {\n const dispatchHasNextPage = scopeBind(hasNextPageUpdated, {\n safe: true,\n })\n const dispatchHasPreviousPage = scopeBind(hasPreviousPageUpdated, {\n safe: true,\n })\n const dispatchIsFetchingNextPage = scopeBind(\n isFetchingNextPageUpdated,\n { safe: true },\n )\n const dispatchIsFetchingPreviousPage = scopeBind(\n isFetchingPreviousPageUpdated,\n { safe: true },\n )\n const dispatchIsFetchNextPageError = scopeBind(\n isFetchNextPageErrorUpdated,\n { safe: true },\n )\n const dispatchIsFetchPreviousPageError = scopeBind(\n isFetchPreviousPageErrorUpdated,\n { safe: true },\n )\n\n return (result) => {\n dispatchHasNextPage(result.hasNextPage)\n dispatchHasPreviousPage(result.hasPreviousPage)\n dispatchIsFetchingNextPage(result.isFetchingNextPage)\n dispatchIsFetchingPreviousPage(result.isFetchingPreviousPage)\n dispatchIsFetchNextPageError(result.isFetchNextPageError)\n dispatchIsFetchPreviousPageError(result.isFetchPreviousPageError)\n }\n },\n }\n },\n },\n )\n\n // See createQuery.prefetch — same contract, but uses fetchInfiniteQuery so\n // the first page is fetched + cached on the server.\n const prefetch = createEvent<void>()\n const prefetchFx = attach({\n source: {\n qc: base.$queryClient,\n key: base.$resolvedKey,\n enabled: base.$enabled,\n },\n effect: ({ qc, key, enabled }) => {\n if (!qc || !enabled) return\n return qc.fetchInfiniteQuery({\n ...restOptions,\n queryKey: key,\n } as any)\n },\n })\n sample({ clock: prefetch, target: prefetchFx })\n\n const result: InfiniteQueryResult<TData, TError, TPageParam> = {\n $data: base.$data,\n $error: base.$error,\n $status: base.$status,\n $isPending: base.$isPending,\n $isFetching: base.$isFetching,\n $isSuccess: base.$isSuccess,\n $isError: base.$isError,\n $isPlaceholderData: base.$isPlaceholderData,\n $fetchStatus: base.$fetchStatus,\n $hasNextPage: base.$hasNextPage,\n $hasPreviousPage: base.$hasPreviousPage,\n $isFetchingNextPage: base.$isFetchingNextPage,\n $isFetchingPreviousPage: base.$isFetchingPreviousPage,\n $isFetchNextPageError: base.$isFetchNextPageError,\n $isFetchPreviousPageError: base.$isFetchPreviousPageError,\n $observer: base.$observer,\n $queryClient: base.$queryClient,\n fetchNextPage: base.fetchNextPage,\n fetchPreviousPage: base.fetchPreviousPage,\n refresh: base.refresh,\n prefetch,\n mounted: base.mounted,\n unmounted: base.unmounted,\n }\n\n Object.defineProperty(result, '__createObserver', {\n enumerable: false,\n value: (qc: QueryClient, init: { queryKey: any; enabled: boolean }) =>\n new InfiniteQueryObserver<\n TQueryFnData,\n TError,\n TData,\n QueryKey,\n TPageParam\n >(qc, {\n ...restOptions,\n queryKey: init.queryKey,\n enabled: init.enabled,\n } as any),\n })\n Object.defineProperty(result, '__resolvedKey', {\n enumerable: false,\n value: base.$resolvedKey,\n })\n Object.defineProperty(result, '__enabled', {\n enumerable: false,\n value: base.$enabled,\n })\n\n return result\n}\n\nfunction parseInfiniteArgs<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey extends EffectorQueryKey,\n>(\n arg1:\n | QueryClient\n | CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >,\n arg2?: CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >,\n): [\n QueryClient | null,\n CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >,\n] {\n if (arg2 !== undefined) {\n return [arg1 as QueryClient, arg2]\n }\n return [\n null,\n arg1 as CreateInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TPageParam,\n TData,\n TQueryKey\n >,\n ]\n}\n"]}
@@ -0,0 +1,262 @@
1
+ 'use strict';
2
+
3
+ var effector = require('effector');
4
+ var queryCore = require('@tanstack/query-core');
5
+ var queryClient_cjs = require('./queryClient.cjs');
6
+ var createBaseQuery_cjs = require('./createBaseQuery.cjs');
7
+
8
+ // src/createQueries.ts
9
+ var EMPTY_ITEMS = [];
10
+ function createQueries(arg1, arg2) {
11
+ const [explicitClient, options] = parseArgs(arg1, arg2);
12
+ const { name, source, query, ...sharedOptions } = options;
13
+ if (!name) createBaseQuery_cjs.warnMissingName("createQueries");
14
+ const $queryClient = explicitClient ? effector.createStore(explicitClient, {
15
+ serialize: "ignore"
16
+ }) : queryClient_cjs.$queryClient;
17
+ const $observers = effector.createStore(
18
+ /* @__PURE__ */ new Map(),
19
+ { serialize: "ignore" }
20
+ );
21
+ const $refCount = effector.createStore(0, { serialize: "ignore" });
22
+ const itemsUpdated = effector.createEvent();
23
+ const $items = effector.createStore(EMPTY_ITEMS, {
24
+ ...createBaseQuery_cjs.sidConfig(name, "$items")
25
+ }).on(itemsUpdated, (_, items) => items);
26
+ const observersChanged = effector.createEvent();
27
+ $observers.on(observersChanged, (_, next) => next);
28
+ const refCountChanged = effector.createEvent();
29
+ $refCount.on(refCountChanged, (_, next) => next);
30
+ const mounted = effector.createEvent();
31
+ const unmounted = effector.createEvent();
32
+ const refresh = effector.createEvent();
33
+ const refreshOne = effector.createEvent();
34
+ const prefetch = effector.createEvent();
35
+ function itemsFromObservers(src, observers) {
36
+ return src.map((item) => {
37
+ const opts = query(item);
38
+ const hash = queryCore.hashKey(opts.queryKey);
39
+ const entry = observers.get(hash);
40
+ if (!entry) return defaultItemState(item);
41
+ const r = entry.observer.getCurrentResult();
42
+ return {
43
+ source: item,
44
+ data: r.data,
45
+ error: r.error,
46
+ status: r.status,
47
+ isPending: r.isPending,
48
+ isFetching: r.isFetching,
49
+ isSuccess: r.isSuccess,
50
+ isError: r.isError,
51
+ isPlaceholderData: r.isPlaceholderData,
52
+ fetchStatus: r.fetchStatus
53
+ };
54
+ });
55
+ }
56
+ function buildObserverOptions(item) {
57
+ const itemOpts = query(item);
58
+ return {
59
+ ...sharedOptions,
60
+ ...itemOpts,
61
+ enabled: itemOpts.enabled ?? true
62
+ };
63
+ }
64
+ function diffSource(qc, src, prev, isMounted, dispatchRecompute) {
65
+ const next = new Map(prev);
66
+ const keep = /* @__PURE__ */ new Set();
67
+ for (const item of src) {
68
+ const opts = query(item);
69
+ const hash = queryCore.hashKey(opts.queryKey);
70
+ keep.add(hash);
71
+ let entry = next.get(hash);
72
+ if (!entry) {
73
+ const obs = new queryCore.QueryObserver(
74
+ qc,
75
+ buildObserverOptions(item)
76
+ );
77
+ entry = {
78
+ observer: obs,
79
+ unsubscribe: null
80
+ };
81
+ next.set(hash, entry);
82
+ } else {
83
+ entry.observer.setOptions({
84
+ ...entry.observer.options,
85
+ ...buildObserverOptions(item)
86
+ });
87
+ }
88
+ if (isMounted && !entry.unsubscribe) {
89
+ entry.unsubscribe = entry.observer.subscribe(dispatchRecompute);
90
+ }
91
+ }
92
+ for (const [hash, entry] of next) {
93
+ if (!keep.has(hash)) {
94
+ entry.unsubscribe?.();
95
+ entry.observer.destroy();
96
+ next.delete(hash);
97
+ }
98
+ }
99
+ return { next, items: itemsFromObservers(src, next) };
100
+ }
101
+ const recomputeFx = effector.attach({
102
+ source: { observers: $observers, currentSource: source },
103
+ effect: ({ observers, currentSource }) => {
104
+ return itemsFromObservers(currentSource, observers);
105
+ }
106
+ });
107
+ effector.sample({ clock: recomputeFx.doneData, target: itemsUpdated });
108
+ const syncFx = effector.attach({
109
+ source: {
110
+ qc: $queryClient,
111
+ observers: $observers,
112
+ refCount: $refCount,
113
+ currentSource: source
114
+ },
115
+ effect: ({ qc, observers, refCount, currentSource }) => {
116
+ if (!qc) {
117
+ return {
118
+ next: observers,
119
+ items: currentSource.map(defaultItemState)
120
+ };
121
+ }
122
+ const dispatchRecompute = effector.scopeBind(recomputeFx, { safe: true });
123
+ return diffSource(
124
+ qc,
125
+ currentSource,
126
+ observers,
127
+ refCount > 0,
128
+ () => dispatchRecompute()
129
+ );
130
+ }
131
+ });
132
+ effector.sample({
133
+ clock: syncFx.doneData,
134
+ fn: (payload) => payload.next,
135
+ target: observersChanged
136
+ });
137
+ effector.sample({
138
+ clock: syncFx.doneData,
139
+ fn: (payload) => payload.items,
140
+ target: itemsUpdated
141
+ });
142
+ effector.sample({ clock: source, target: syncFx });
143
+ effector.sample({ clock: $queryClient, target: syncFx });
144
+ const mountFx = effector.attach({
145
+ source: $refCount,
146
+ effect: (refCount) => refCount + 1
147
+ });
148
+ effector.sample({ clock: mounted, target: mountFx });
149
+ effector.sample({ clock: mountFx.doneData, target: refCountChanged });
150
+ effector.sample({ clock: mountFx.done, target: syncFx });
151
+ const unmountFx = effector.attach({
152
+ source: { observers: $observers, refCount: $refCount },
153
+ effect: ({ observers, refCount }) => {
154
+ const nextRefCount = Math.max(0, refCount - 1);
155
+ if (nextRefCount === 0) {
156
+ for (const entry of observers.values()) {
157
+ entry.unsubscribe?.();
158
+ entry.unsubscribe = null;
159
+ }
160
+ }
161
+ return nextRefCount;
162
+ }
163
+ });
164
+ effector.sample({ clock: unmounted, target: unmountFx });
165
+ effector.sample({ clock: unmountFx.doneData, target: refCountChanged });
166
+ const refreshFx = effector.attach({
167
+ source: $observers,
168
+ effect: async (observers) => {
169
+ await Promise.all(
170
+ [...observers.values()].map(
171
+ (entry) => entry.observer.refetch().catch(() => void 0)
172
+ )
173
+ );
174
+ }
175
+ });
176
+ effector.sample({ clock: refresh, target: refreshFx });
177
+ const refreshOneFx = effector.attach({
178
+ source: $observers,
179
+ effect: async (observers, item) => {
180
+ const opts = query(item);
181
+ const hash = queryCore.hashKey(opts.queryKey);
182
+ const entry = observers.get(hash);
183
+ if (!entry) return;
184
+ await entry.observer.refetch().catch(() => void 0);
185
+ }
186
+ });
187
+ effector.sample({ clock: refreshOne, target: refreshOneFx });
188
+ const prefetchFx = effector.attach({
189
+ source: { qc: $queryClient, currentSource: source },
190
+ effect: async ({ qc, currentSource }) => {
191
+ if (!qc) return;
192
+ await Promise.all(
193
+ currentSource.map((item) => {
194
+ const opts = query(item);
195
+ if (opts.enabled === false) return Promise.resolve();
196
+ return qc.fetchQuery({
197
+ ...sharedOptions,
198
+ ...opts
199
+ }).catch(() => void 0);
200
+ })
201
+ );
202
+ }
203
+ });
204
+ effector.sample({ clock: prefetch, target: prefetchFx });
205
+ effector.sample({ clock: prefetchFx.done, target: syncFx });
206
+ const $data = $items.map((items) => items.map((it) => it.data));
207
+ const $isPending = $items.map(
208
+ (items) => items.length === 0 ? false : items.some((it) => it.isPending)
209
+ );
210
+ const $isSuccess = $items.map(
211
+ (items) => items.length === 0 ? true : items.every((it) => it.isSuccess)
212
+ );
213
+ const $isFetching = $items.map((items) => items.some((it) => it.isFetching));
214
+ const $isError = $items.map((items) => items.some((it) => it.isError));
215
+ const result = {
216
+ $items,
217
+ $data,
218
+ $isPending,
219
+ $isSuccess,
220
+ $isFetching,
221
+ $isError,
222
+ mounted,
223
+ unmounted,
224
+ refresh,
225
+ refreshOne,
226
+ prefetch,
227
+ $queryClient,
228
+ __family: true
229
+ };
230
+ Object.defineProperty(result, "__queryFor", {
231
+ enumerable: false,
232
+ value: buildObserverOptions
233
+ });
234
+ return result;
235
+ function defaultItemState(item) {
236
+ return {
237
+ source: item,
238
+ data: void 0,
239
+ error: null,
240
+ status: "pending",
241
+ isPending: true,
242
+ isFetching: false,
243
+ isSuccess: false,
244
+ isError: false,
245
+ isPlaceholderData: false,
246
+ fetchStatus: "idle"
247
+ };
248
+ }
249
+ }
250
+ function parseArgs(arg1, arg2) {
251
+ if (arg2 !== void 0) {
252
+ return [arg1, arg2];
253
+ }
254
+ return [
255
+ null,
256
+ arg1
257
+ ];
258
+ }
259
+
260
+ exports.createQueries = createQueries;
261
+ //# sourceMappingURL=createQueries.cjs.map
262
+ //# sourceMappingURL=createQueries.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/createQueries.ts"],"names":["warnMissingName","createStore","$globalQueryClient","createEvent","sidConfig","hashKey","QueryObserver","attach","sample","scopeBind"],"mappings":"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","file":"createQueries.cjs","sourcesContent":["import {\n attach,\n createEvent,\n createStore,\n sample,\n scopeBind,\n type Store,\n} from 'effector'\nimport { QueryObserver, hashKey } from '@tanstack/query-core'\nimport type { QueryClient } from '@tanstack/query-core'\nimport { $queryClient as $globalQueryClient } from './queryClient'\nimport { sidConfig, warnMissingName } from './createBaseQuery'\nimport type {\n CreateQueriesOptions,\n QueriesResult,\n QueryItemState,\n} from './types'\n\ninterface ObserverEntry<TData, TError> {\n observer: QueryObserver<TData, TError>\n unsubscribe: (() => void) | null\n}\n\nconst EMPTY_ITEMS: ReadonlyArray<QueryItemState<unknown, unknown, unknown>> = []\n\n/**\n * Reactive family of parallel queries indexed by a source store. See\n * {@link CreateQueriesOptions} for the input shape and\n * {@link QueriesResult} for the output API.\n *\n * Internals:\n *\n * - Each `source` element gets one `QueryObserver` (deduplicated by\n * `hashKey(query(item).queryKey)`). Observers live in a per-scope\n * `Map` held in a `serialize: 'ignore'` store (instances can't ride\n * through `serialize(scope)`).\n * - On every `source` update the family diffs prev/next, spawns\n * observers for new items, disposes observers for removed items,\n * and updates `$items`. Re-ordering without add/remove is cheap —\n * observers stay, `$items` just re-projects.\n * - Observer subscriptions are reference-counted via `mounted()` /\n * `unmounted()`. First mount subscribes every observer; last\n * unmount unsubscribes. Subsequent source changes while mounted\n * auto-subscribe new observers.\n * - SSR works via `prefetch`: triggers `qc.fetchQuery(...)` for every\n * current source item in parallel, populates the QC cache, then\n * mounts observers so `$items` snapshot carries the data through\n * `serialize(scope)`.\n */\nexport function createQueries<\n TItem,\n TQueryFnData = unknown,\n TError = Error,\n TData = TQueryFnData,\n TQueryKey extends ReadonlyArray<unknown> = ReadonlyArray<unknown>,\n>(\n options: CreateQueriesOptions<TItem, TQueryFnData, TError, TData, TQueryKey>,\n): QueriesResult<TItem, TData, TError>\nexport function createQueries<\n TItem,\n TQueryFnData = unknown,\n TError = Error,\n TData = TQueryFnData,\n TQueryKey extends ReadonlyArray<unknown> = ReadonlyArray<unknown>,\n>(\n queryClient: QueryClient,\n options: CreateQueriesOptions<TItem, TQueryFnData, TError, TData, TQueryKey>,\n): QueriesResult<TItem, TData, TError>\nexport function createQueries<\n TItem,\n TQueryFnData = unknown,\n TError = Error,\n TData = TQueryFnData,\n TQueryKey extends ReadonlyArray<unknown> = ReadonlyArray<unknown>,\n>(\n arg1:\n | QueryClient\n | CreateQueriesOptions<TItem, TQueryFnData, TError, TData, TQueryKey>,\n arg2?: CreateQueriesOptions<TItem, TQueryFnData, TError, TData, TQueryKey>,\n): QueriesResult<TItem, TData, TError> {\n const [explicitClient, options] = parseArgs<\n TItem,\n TQueryFnData,\n TError,\n TData,\n TQueryKey\n >(arg1, arg2)\n\n const { name, source, query, ...sharedOptions } = options\n\n if (!name) warnMissingName('createQueries')\n\n const $queryClient: Store<QueryClient | null> = explicitClient\n ? createStore(explicitClient as QueryClient | null, {\n serialize: 'ignore',\n })\n : $globalQueryClient\n\n // Per-scope observer storage. Map keyed by queryKey hash.\n const $observers = createStore<Map<string, ObserverEntry<TData, TError>>>(\n new Map(),\n { serialize: 'ignore' },\n )\n\n // Per-scope ref-count: number of active consumers that called mounted().\n // First mount subscribes observers, last unmount unsubscribes them.\n const $refCount = createStore<number>(0, { serialize: 'ignore' })\n\n // The serializable result snapshot.\n const itemsUpdated = createEvent<\n ReadonlyArray<QueryItemState<TItem, TData, TError>>\n >()\n const $items = createStore<\n ReadonlyArray<QueryItemState<TItem, TData, TError>>\n >(EMPTY_ITEMS as ReadonlyArray<QueryItemState<TItem, TData, TError>>, {\n ...sidConfig(name, '$items'),\n }).on(itemsUpdated, (_, items) => items)\n\n const observersChanged = createEvent<\n Map<string, ObserverEntry<TData, TError>>\n >()\n $observers.on(observersChanged, (_, next) => next)\n\n const refCountChanged = createEvent<number>()\n $refCount.on(refCountChanged, (_, next) => next)\n\n const mounted = createEvent<void>()\n const unmounted = createEvent<void>()\n const refresh = createEvent<void>()\n const refreshOne = createEvent<TItem>()\n const prefetch = createEvent<void>()\n\n // Snapshot helpers — pure, run from effects.\n function itemsFromObservers(\n src: ReadonlyArray<TItem>,\n observers: Map<string, ObserverEntry<TData, TError>>,\n ): ReadonlyArray<QueryItemState<TItem, TData, TError>> {\n return src.map((item) => {\n const opts = query(item)\n const hash = hashKey(opts.queryKey as ReadonlyArray<unknown>)\n const entry = observers.get(hash)\n if (!entry) return defaultItemState(item)\n const r = entry.observer.getCurrentResult()\n return {\n source: item,\n data: r.data,\n error: r.error,\n status: r.status,\n isPending: r.isPending,\n isFetching: r.isFetching,\n isSuccess: r.isSuccess,\n isError: r.isError,\n isPlaceholderData: r.isPlaceholderData,\n fetchStatus: r.fetchStatus,\n }\n })\n }\n\n function buildObserverOptions(item: TItem) {\n const itemOpts = query(item)\n return {\n ...sharedOptions,\n ...itemOpts,\n enabled: itemOpts.enabled ?? true,\n } as ConstructorParameters<typeof QueryObserver<TQueryFnData, TError, TData>>[1]\n }\n\n // Diff source against current observers. Spawns / disposes observers\n // to match the desired set; subscribes the ones that should be live\n // given the current mount state. Idempotent — calling twice with the\n // same input + state is a no-op.\n function diffSource(\n qc: QueryClient,\n src: ReadonlyArray<TItem>,\n prev: Map<string, ObserverEntry<TData, TError>>,\n isMounted: boolean,\n dispatchRecompute: () => void,\n ): {\n next: Map<string, ObserverEntry<TData, TError>>\n items: ReadonlyArray<QueryItemState<TItem, TData, TError>>\n } {\n const next = new Map(prev)\n const keep = new Set<string>()\n\n for (const item of src) {\n const opts = query(item)\n const hash = hashKey(opts.queryKey as ReadonlyArray<unknown>)\n keep.add(hash)\n let entry = next.get(hash)\n if (!entry) {\n const obs = new QueryObserver<TQueryFnData, TError, TData>(\n qc,\n buildObserverOptions(item) as any,\n )\n entry = {\n observer: obs as unknown as QueryObserver<TData, TError>,\n unsubscribe: null,\n }\n next.set(hash, entry)\n } else {\n // Same queryKey but `query(item)` might have changed `enabled`\n // (or other passthrough options). Keep observer options in sync.\n entry.observer.setOptions({\n ...entry.observer.options,\n ...(buildObserverOptions(item) as any),\n })\n }\n // Ensure subscription state matches mount state — covers both\n // newly-spawned observers and pre-existing observers that were\n // created while unmounted (`syncFx` ran on source change before\n // anyone called `mounted()`).\n if (isMounted && !entry.unsubscribe) {\n entry.unsubscribe = entry.observer.subscribe(dispatchRecompute)\n }\n }\n\n for (const [hash, entry] of next) {\n if (!keep.has(hash)) {\n entry.unsubscribe?.()\n entry.observer.destroy()\n next.delete(hash)\n }\n }\n\n return { next, items: itemsFromObservers(src, next) }\n }\n\n // Triggered whenever an observer emits a result (subscribe callback)\n // OR when source changes — re-projects $items.\n const recomputeFx = attach({\n source: { observers: $observers, currentSource: source },\n effect: ({ observers, currentSource }) => {\n return itemsFromObservers(currentSource, observers)\n },\n })\n sample({ clock: recomputeFx.doneData, target: itemsUpdated })\n\n // Source sync effect — applies diff, mutates observer subscriptions\n // when mounted, then dispatches the items snapshot. When the scope\n // has no QueryClient yet we still run, but the diff produces an\n // empty observer set (no `new QueryObserver(qc, ...)` calls), so\n // `$items` shows default-pending state and observers spawn the\n // moment qc becomes available.\n const syncFx = attach({\n source: {\n qc: $queryClient,\n observers: $observers,\n refCount: $refCount,\n currentSource: source,\n },\n effect: ({ qc, observers, refCount, currentSource }) => {\n if (!qc) {\n return {\n next: observers,\n items: currentSource.map(defaultItemState),\n }\n }\n const dispatchRecompute = scopeBind(recomputeFx, { safe: true })\n return diffSource(\n qc,\n currentSource,\n observers,\n refCount > 0,\n () => dispatchRecompute(),\n )\n },\n })\n sample({\n clock: syncFx.doneData,\n fn: (payload) => payload.next,\n target: observersChanged,\n })\n sample({\n clock: syncFx.doneData,\n fn: (payload) => payload.items,\n target: itemsUpdated,\n })\n\n sample({ clock: source, target: syncFx })\n sample({ clock: $queryClient, target: syncFx })\n\n // Mount lifecycle — increment refCount, then run syncFx so observers\n // get spawned (if missing) and subscribed (because `refCount > 0`\n // now). Same path covers the first-ever mount AND\n // existing-but-unsubscribed observers (created while unmounted, e.g.\n // on a source-change in a not-yet-mounted scope).\n const mountFx = attach({\n source: $refCount,\n effect: (refCount) => refCount + 1,\n })\n sample({ clock: mounted, target: mountFx })\n sample({ clock: mountFx.doneData, target: refCountChanged })\n sample({ clock: mountFx.done, target: syncFx })\n\n const unmountFx = attach({\n source: { observers: $observers, refCount: $refCount },\n effect: ({ observers, refCount }) => {\n const nextRefCount = Math.max(0, refCount - 1)\n if (nextRefCount === 0) {\n for (const entry of observers.values()) {\n entry.unsubscribe?.()\n entry.unsubscribe = null\n }\n }\n return nextRefCount\n },\n })\n sample({ clock: unmounted, target: unmountFx })\n sample({ clock: unmountFx.doneData, target: refCountChanged })\n\n // Refresh — invalidate all observed queries; observer subscribers\n // pick up the refetched data and refresh $items via recomputeFx.\n const refreshFx = attach({\n source: $observers,\n effect: async (observers) => {\n await Promise.all(\n [...observers.values()].map((entry) =>\n entry.observer.refetch().catch(() => undefined),\n ),\n )\n },\n })\n sample({ clock: refresh, target: refreshFx })\n\n const refreshOneFx = attach({\n source: $observers,\n effect: async (\n observers,\n item: TItem,\n ) => {\n const opts = query(item)\n const hash = hashKey(opts.queryKey as ReadonlyArray<unknown>)\n const entry = observers.get(hash)\n if (!entry) return\n await entry.observer.refetch().catch(() => undefined)\n },\n })\n sample({ clock: refreshOne, target: refreshOneFx })\n\n // Prefetch — for SSR. Walks source, calls qc.fetchQuery for each item\n // in parallel, then re-runs syncFx so $items reflects the populated\n // cache.\n const prefetchFx = attach({\n source: { qc: $queryClient, currentSource: source },\n effect: async ({ qc, currentSource }) => {\n if (!qc) return\n await Promise.all(\n currentSource.map((item) => {\n const opts = query(item)\n if (opts.enabled === false) return Promise.resolve()\n return qc\n .fetchQuery({\n ...sharedOptions,\n ...opts,\n } as any)\n .catch(() => undefined)\n }),\n )\n },\n })\n sample({ clock: prefetch, target: prefetchFx })\n // After prefetch resolves, re-sync to update $items from QC cache.\n sample({ clock: prefetchFx.done, target: syncFx })\n\n // Derived stores — convenience views.\n const $data = $items.map((items) => items.map((it) => it.data))\n const $isPending = $items.map((items) =>\n items.length === 0 ? false : items.some((it) => it.isPending),\n )\n const $isSuccess = $items.map((items) =>\n items.length === 0 ? true : items.every((it) => it.isSuccess),\n )\n const $isFetching = $items.map((items) => items.some((it) => it.isFetching))\n const $isError = $items.map((items) => items.some((it) => it.isError))\n\n const result: QueriesResult<TItem, TData, TError> = {\n $items,\n $data,\n $isPending,\n $isSuccess,\n $isFetching,\n $isError,\n mounted,\n unmounted,\n refresh,\n refreshOne,\n prefetch,\n $queryClient,\n __family: true,\n }\n\n // Internal: callable from the suspense hook to reconstruct the\n // QueryObserver options for one source item (with sharedOptions\n // merged on top of `query(item)` and the default `enabled: true`).\n // The hook then feeds this into `qc.fetchQuery` to obtain a\n // deduped-by-queryHash inflight promise to throw at React.\n Object.defineProperty(result, '__queryFor', {\n enumerable: false,\n value: buildObserverOptions,\n })\n\n return result\n\n function defaultItemState(item: TItem): QueryItemState<TItem, TData, TError> {\n return {\n source: item,\n data: undefined,\n error: null,\n status: 'pending',\n isPending: true,\n isFetching: false,\n isSuccess: false,\n isError: false,\n isPlaceholderData: false,\n fetchStatus: 'idle',\n }\n }\n}\n\nfunction parseArgs<TItem, TQueryFnData, TError, TData, TQueryKey extends ReadonlyArray<unknown>>(\n arg1:\n | QueryClient\n | CreateQueriesOptions<TItem, TQueryFnData, TError, TData, TQueryKey>,\n arg2?: CreateQueriesOptions<TItem, TQueryFnData, TError, TData, TQueryKey>,\n): [\n QueryClient | null,\n CreateQueriesOptions<TItem, TQueryFnData, TError, TData, TQueryKey>,\n] {\n if (arg2 !== undefined) {\n return [arg1 as QueryClient, arg2]\n }\n return [\n null,\n arg1 as CreateQueriesOptions<\n TItem,\n TQueryFnData,\n TError,\n TData,\n TQueryKey\n >,\n ]\n}\n"]}
@@ -0,0 +1,32 @@
1
+ import { QueryClient } from '@tanstack/query-core';
2
+ import { CreateQueriesOptions, QueriesResult } from './types.cjs';
3
+ import 'effector';
4
+
5
+ /**
6
+ * Reactive family of parallel queries indexed by a source store. See
7
+ * {@link CreateQueriesOptions} for the input shape and
8
+ * {@link QueriesResult} for the output API.
9
+ *
10
+ * Internals:
11
+ *
12
+ * - Each `source` element gets one `QueryObserver` (deduplicated by
13
+ * `hashKey(query(item).queryKey)`). Observers live in a per-scope
14
+ * `Map` held in a `serialize: 'ignore'` store (instances can't ride
15
+ * through `serialize(scope)`).
16
+ * - On every `source` update the family diffs prev/next, spawns
17
+ * observers for new items, disposes observers for removed items,
18
+ * and updates `$items`. Re-ordering without add/remove is cheap —
19
+ * observers stay, `$items` just re-projects.
20
+ * - Observer subscriptions are reference-counted via `mounted()` /
21
+ * `unmounted()`. First mount subscribes every observer; last
22
+ * unmount unsubscribes. Subsequent source changes while mounted
23
+ * auto-subscribe new observers.
24
+ * - SSR works via `prefetch`: triggers `qc.fetchQuery(...)` for every
25
+ * current source item in parallel, populates the QC cache, then
26
+ * mounts observers so `$items` snapshot carries the data through
27
+ * `serialize(scope)`.
28
+ */
29
+ declare function createQueries<TItem, TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends ReadonlyArray<unknown> = ReadonlyArray<unknown>>(options: CreateQueriesOptions<TItem, TQueryFnData, TError, TData, TQueryKey>): QueriesResult<TItem, TData, TError>;
30
+ declare function createQueries<TItem, TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends ReadonlyArray<unknown> = ReadonlyArray<unknown>>(queryClient: QueryClient, options: CreateQueriesOptions<TItem, TQueryFnData, TError, TData, TQueryKey>): QueriesResult<TItem, TData, TError>;
31
+
32
+ export { createQueries };
@@ -0,0 +1,32 @@
1
+ import { QueryClient } from '@tanstack/query-core';
2
+ import { CreateQueriesOptions, QueriesResult } from './types.js';
3
+ import 'effector';
4
+
5
+ /**
6
+ * Reactive family of parallel queries indexed by a source store. See
7
+ * {@link CreateQueriesOptions} for the input shape and
8
+ * {@link QueriesResult} for the output API.
9
+ *
10
+ * Internals:
11
+ *
12
+ * - Each `source` element gets one `QueryObserver` (deduplicated by
13
+ * `hashKey(query(item).queryKey)`). Observers live in a per-scope
14
+ * `Map` held in a `serialize: 'ignore'` store (instances can't ride
15
+ * through `serialize(scope)`).
16
+ * - On every `source` update the family diffs prev/next, spawns
17
+ * observers for new items, disposes observers for removed items,
18
+ * and updates `$items`. Re-ordering without add/remove is cheap —
19
+ * observers stay, `$items` just re-projects.
20
+ * - Observer subscriptions are reference-counted via `mounted()` /
21
+ * `unmounted()`. First mount subscribes every observer; last
22
+ * unmount unsubscribes. Subsequent source changes while mounted
23
+ * auto-subscribe new observers.
24
+ * - SSR works via `prefetch`: triggers `qc.fetchQuery(...)` for every
25
+ * current source item in parallel, populates the QC cache, then
26
+ * mounts observers so `$items` snapshot carries the data through
27
+ * `serialize(scope)`.
28
+ */
29
+ declare function createQueries<TItem, TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends ReadonlyArray<unknown> = ReadonlyArray<unknown>>(options: CreateQueriesOptions<TItem, TQueryFnData, TError, TData, TQueryKey>): QueriesResult<TItem, TData, TError>;
30
+ declare function createQueries<TItem, TQueryFnData = unknown, TError = Error, TData = TQueryFnData, TQueryKey extends ReadonlyArray<unknown> = ReadonlyArray<unknown>>(queryClient: QueryClient, options: CreateQueriesOptions<TItem, TQueryFnData, TError, TData, TQueryKey>): QueriesResult<TItem, TData, TError>;
31
+
32
+ export { createQueries };