@ttt-productions/query-core 0.14.28 → 0.14.29
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.
|
@@ -18,7 +18,7 @@ export interface InfiniteReadSpec<TPage, TParam, TData = InfiniteData<TPage, TPa
|
|
|
18
18
|
pages?: TPage[];
|
|
19
19
|
pageParams?: TParam[];
|
|
20
20
|
initialPageParam: TParam;
|
|
21
|
-
getNextPageParam: (lastPage: TPage, allPages: TPage[]) => TParam | undefined | null;
|
|
21
|
+
getNextPageParam: (lastPage: TPage, allPages: TPage[], lastPageParam: TParam, allPageParams: TParam[]) => TParam | undefined | null;
|
|
22
22
|
select?: (data: InfiniteData<TPage, TParam>) => TData;
|
|
23
23
|
}
|
|
24
24
|
export declare const infiniteRead: <TPage, TParam, TData = InfiniteData<TPage, TParam>>(spec: InfiniteReadSpec<TPage, TParam, TData> & {
|
|
@@ -37,6 +37,9 @@ export declare const answeredThenFailedInfiniteRead: <TPage, TParam, TData = Inf
|
|
|
37
37
|
export declare const retryingAnsweredInfiniteRead: <TPage, TParam, TData = InfiniteData<TPage, TParam>>(spec: InfiniteReadSpec<TPage, TParam, TData> & {
|
|
38
38
|
pages: TPage[];
|
|
39
39
|
}, error: Error) => BuiltInfiniteRead<TData>;
|
|
40
|
+
export declare const pausedRetryingAnsweredInfiniteRead: <TPage, TParam, TData = InfiniteData<TPage, TParam>>(spec: InfiniteReadSpec<TPage, TParam, TData> & {
|
|
41
|
+
pages: TPage[];
|
|
42
|
+
}, error: Error) => BuiltInfiniteRead<TData>;
|
|
40
43
|
export declare const fetchingNextPageRead: <TPage, TParam, TData = InfiniteData<TPage, TParam>>(spec: InfiniteReadSpec<TPage, TParam, TData> & {
|
|
41
44
|
pages: TPage[];
|
|
42
45
|
}) => BuiltInfiniteRead<TData>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-builders.d.ts","sourceRoot":"","sources":["../../../src/react/testing/read-builders.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,2BAA2B,EAEhC,KAAK,mBAAmB,EAEzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAiC,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAEjG,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG;IAAE,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAA;CAAE,CAAC;AAEjG,MAAM,MAAM,iBAAiB,CAAC,KAAK,IAAI,2BAA2B,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG;IACjF,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;CACnC,CAAC;
|
|
1
|
+
{"version":3,"file":"read-builders.d.ts","sourceRoot":"","sources":["../../../src/react/testing/read-builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ function retryStateOf(result, held) {
|
|
|
7
7
|
error: result.error,
|
|
8
8
|
isFetching: result.isFetching,
|
|
9
9
|
isLoading: result.isLoading,
|
|
10
|
+
isPaused: result.isPaused,
|
|
10
11
|
};
|
|
11
12
|
return toRetryState(source, nextHeldFailure(held ? { error: held } : undefined, source));
|
|
12
13
|
}
|
|
@@ -44,7 +45,7 @@ export const retryingAnsweredRead = (data, error) => observed({ ...answered(data
|
|
|
44
45
|
function pageParamsOf(spec, pages) {
|
|
45
46
|
const params = [spec.initialPageParam];
|
|
46
47
|
for (let i = 1; i < pages.length; i++) {
|
|
47
|
-
const next = spec.getNextPageParam(pages[i - 1], pages.slice(0, i));
|
|
48
|
+
const next = spec.getNextPageParam(pages[i - 1], pages.slice(0, i), params[i - 1], [...params]);
|
|
48
49
|
if (next === undefined || next === null)
|
|
49
50
|
throw new Error(`page ${i} has no page param: getNextPageParam ends the list before it`);
|
|
50
51
|
params.push(next);
|
|
@@ -89,6 +90,7 @@ export const retryingInfiniteRead = (spec, error) => observedInfinite(spec, { st
|
|
|
89
90
|
export const fetchingInfiniteRead = (spec) => observedInfinite(spec, { fetchStatus: 'fetching' });
|
|
90
91
|
export const answeredThenFailedInfiniteRead = (spec, error) => observedInfinite(spec, failure(error));
|
|
91
92
|
export const retryingAnsweredInfiniteRead = (spec, error) => observedInfinite(spec, { ...failure(error), fetchStatus: 'fetching' });
|
|
93
|
+
export const pausedRetryingAnsweredInfiniteRead = (spec, error) => observedInfinite(spec, { ...failure(error), fetchStatus: 'paused' });
|
|
92
94
|
export const fetchingNextPageRead = (spec) => observedInfinite(spec, { fetchStatus: 'fetching', fetchMeta: FORWARD });
|
|
93
95
|
export const nextPageFailedRead = (spec, error) => observedInfinite(spec, { ...failure(error), fetchMeta: FORWARD });
|
|
94
96
|
export const retryingNextPageRead = (spec, error) => observedInfinite(spec, { ...failure(error), fetchStatus: 'fetching', fetchMeta: FORWARD });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-builders.js","sourceRoot":"","sources":["../../../src/react/testing/read-builders.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n InfiniteQueryObserver,\n QueryClient,\n QueryObserver,\n type InfiniteData,\n type InfiniteQueryObserverResult,\n type QueryKey,\n type QueryObserverResult,\n type QueryState,\n} from '@tanstack/react-query';\nimport { nextHeldFailure, toRetryState, type ReadRetryState } from '../read-retry-derivation.js';\n\nexport type BuiltRead<T> = QueryObserverResult<T, Error> & { retryState: ReadRetryState<Error> };\n\nexport type BuiltInfiniteRead<TData> = InfiniteQueryObserverResult<TData, Error> & {\n retryState: ReadRetryState<Error>;\n};\n\nconst KEY: QueryKey = ['built-read'];\n\nconst notFetchedInTest = (): Promise<never> =>\n Promise.reject(new Error('this read is not fetched in the test; pass the case its own refetch'));\n\nfunction retryStateOf(\n result: { error: Error | null; isFetching: boolean; isLoading: boolean },\n held: Error | null,\n): ReadRetryState<Error> {\n const source = {\n error: result.error,\n isFetching: result.isFetching,\n isLoading: result.isLoading,\n };\n return toRetryState(source, nextHeldFailure(held ? { error: held } : undefined, source));\n}\n\nfunction observed<T>(\n state: Partial<QueryState<T, Error>>,\n held: Error | null = null,\n): BuiltRead<T> {\n const client = new QueryClient({ defaultOptions: { queries: { retry: false } } });\n client.getQueryCache().build<T, Error>(client, { queryKey: KEY }).setState(state);\n const result = new QueryObserver<T, Error>(client, {\n queryKey: KEY,\n queryFn: notFetchedInTest,\n enabled: false,\n }).getCurrentResult();\n return { ...result, retryState: retryStateOf(result, held) };\n}\n\nconst answered = <T>(data: T): Partial<QueryState<T, Error>> => ({\n data,\n dataUpdatedAt: 1,\n status: 'success',\n});\n\nconst failure = (error: Error): Partial<QueryState<never, Error>> => ({\n error,\n errorUpdatedAt: 2,\n errorUpdateCount: 1,\n fetchFailureCount: 1,\n fetchFailureReason: error,\n status: 'error',\n});\n\nexport const answeredRead = <T>(data: T): BuiltRead<T> => observed<T>(answered(data));\n\nexport const idleRead = <T>(): BuiltRead<T> => observed<T>({});\n\nexport const loadingRead = <T>(): BuiltRead<T> => observed<T>({ fetchStatus: 'fetching' });\n\nexport const failedRead = <T>(error: Error): BuiltRead<T> => observed<T>(failure(error));\n\nexport const retryingRead = <T>(error: Error): BuiltRead<T> =>\n observed<T>({ status: 'pending', fetchStatus: 'fetching', error: null }, error);\n\nexport const fetchingRead = <T>(data: T): BuiltRead<T> =>\n observed<T>({ ...answered(data), fetchStatus: 'fetching' });\n\nexport const answeredThenFailedRead = <T>(data: T, error: Error): BuiltRead<T> =>\n observed<T>({ ...answered(data), ...failure(error) });\n\nexport const retryingAnsweredRead = <T>(data: T, error: Error): BuiltRead<T> =>\n observed<T>({ ...answered(data), ...failure(error), fetchStatus: 'fetching' });\n\nexport interface InfiniteReadSpec<TPage, TParam, TData = InfiniteData<TPage, TParam>> {\n pages?: TPage[];\n pageParams?: TParam[];\n initialPageParam: TParam;\n getNextPageParam: (lastPage: TPage, allPages: TPage[]) => TParam | undefined | null;\n select?: (data: InfiniteData<TPage, TParam>) => TData;\n}\n\nfunction pageParamsOf<TPage, TParam, TData>(\n spec: InfiniteReadSpec<TPage, TParam, TData>,\n pages: TPage[],\n): TParam[] {\n const params = [spec.initialPageParam];\n for (let i = 1; i < pages.length; i++) {\n const next = spec.getNextPageParam(pages[i - 1], pages.slice(0, i));\n if (next === undefined || next === null)\n throw new Error(`page ${i} has no page param: getNextPageParam ends the list before it`);\n params.push(next);\n }\n return params;\n}\n\nfunction observedInfinite<TPage, TParam, TData>(\n spec: InfiniteReadSpec<TPage, TParam, TData>,\n state: Partial<QueryState<InfiniteData<TPage, TParam>, Error>>,\n held: Error | null = null,\n): BuiltInfiniteRead<TData> {\n const client = new QueryClient({ defaultOptions: { queries: { retry: false } } });\n const pages = spec.pages;\n client\n .getQueryCache()\n .build<InfiniteData<TPage, TParam>, Error>(client, { queryKey: KEY })\n .setState({\n ...(pages\n ? {\n data: {\n pages,\n pageParams: spec.pageParams ?? pageParamsOf(spec, pages),\n },\n dataUpdatedAt: 1,\n status: 'success',\n }\n : {}),\n ...state,\n });\n const result = new InfiniteQueryObserver<TPage, Error, TData, QueryKey, TParam>(client, {\n queryKey: KEY,\n queryFn: notFetchedInTest,\n initialPageParam: spec.initialPageParam,\n getNextPageParam: spec.getNextPageParam,\n ...(spec.select ? { select: spec.select } : {}),\n enabled: false,\n }).getCurrentResult();\n return { ...result, retryState: retryStateOf(result, held) };\n}\n\nconst FORWARD = { fetchMore: { direction: 'forward' } } as const;\n\nexport const infiniteRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: InfiniteReadSpec<TPage, TParam, TData> & { pages: TPage[] },\n): BuiltInfiniteRead<TData> => observedInfinite(spec, {});\n\nexport const idleInfiniteRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: Omit<InfiniteReadSpec<TPage, TParam, TData>, 'pages'>,\n): BuiltInfiniteRead<TData> => observedInfinite(spec, {});\n\nexport const loadingInfiniteRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: Omit<InfiniteReadSpec<TPage, TParam, TData>, 'pages'>,\n): BuiltInfiniteRead<TData> => observedInfinite(spec, { fetchStatus: 'fetching' });\n\nexport const failedInfiniteRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: Omit<InfiniteReadSpec<TPage, TParam, TData>, 'pages'>,\n error: Error,\n): BuiltInfiniteRead<TData> => observedInfinite(spec, failure(error));\n\nexport const retryingInfiniteRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: Omit<InfiniteReadSpec<TPage, TParam, TData>, 'pages'>,\n error: Error,\n): BuiltInfiniteRead<TData> =>\n observedInfinite(spec, { status: 'pending', fetchStatus: 'fetching', error: null }, error);\n\nexport const fetchingInfiniteRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: InfiniteReadSpec<TPage, TParam, TData> & { pages: TPage[] },\n): BuiltInfiniteRead<TData> => observedInfinite(spec, { fetchStatus: 'fetching' });\n\nexport const answeredThenFailedInfiniteRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: InfiniteReadSpec<TPage, TParam, TData> & { pages: TPage[] },\n error: Error,\n): BuiltInfiniteRead<TData> => observedInfinite(spec, failure(error));\n\nexport const retryingAnsweredInfiniteRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: InfiniteReadSpec<TPage, TParam, TData> & { pages: TPage[] },\n error: Error,\n): BuiltInfiniteRead<TData> =>\n observedInfinite(spec, { ...failure(error), fetchStatus: 'fetching' });\n\nexport const fetchingNextPageRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: InfiniteReadSpec<TPage, TParam, TData> & { pages: TPage[] },\n): BuiltInfiniteRead<TData> =>\n observedInfinite(spec, { fetchStatus: 'fetching', fetchMeta: FORWARD });\n\nexport const nextPageFailedRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: InfiniteReadSpec<TPage, TParam, TData> & { pages: TPage[] },\n error: Error,\n): BuiltInfiniteRead<TData> => observedInfinite(spec, { ...failure(error), fetchMeta: FORWARD });\n\nexport const retryingNextPageRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: InfiniteReadSpec<TPage, TParam, TData> & { pages: TPage[] },\n error: Error,\n): BuiltInfiniteRead<TData> =>\n observedInfinite(spec, { ...failure(error), fetchStatus: 'fetching', fetchMeta: FORWARD });\n"]}
|
|
1
|
+
{"version":3,"file":"read-builders.js","sourceRoot":"","sources":["../../../src/react/testing/read-builders.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n InfiniteQueryObserver,\n QueryClient,\n QueryObserver,\n type InfiniteData,\n type InfiniteQueryObserverResult,\n type QueryKey,\n type QueryObserverResult,\n type QueryState,\n} from '@tanstack/react-query';\nimport { nextHeldFailure, toRetryState, type ReadRetryState } from '../read-retry-derivation.js';\n\nexport type BuiltRead<T> = QueryObserverResult<T, Error> & { retryState: ReadRetryState<Error> };\n\nexport type BuiltInfiniteRead<TData> = InfiniteQueryObserverResult<TData, Error> & {\n retryState: ReadRetryState<Error>;\n};\n\nconst KEY: QueryKey = ['built-read'];\n\nconst notFetchedInTest = (): Promise<never> =>\n Promise.reject(new Error('this read is not fetched in the test; pass the case its own refetch'));\n\nfunction retryStateOf(\n result: { error: Error | null; isFetching: boolean; isLoading: boolean; isPaused: boolean },\n held: Error | null,\n): ReadRetryState<Error> {\n const source = {\n error: result.error,\n isFetching: result.isFetching,\n isLoading: result.isLoading,\n isPaused: result.isPaused,\n };\n return toRetryState(source, nextHeldFailure(held ? { error: held } : undefined, source));\n}\n\nfunction observed<T>(\n state: Partial<QueryState<T, Error>>,\n held: Error | null = null,\n): BuiltRead<T> {\n const client = new QueryClient({ defaultOptions: { queries: { retry: false } } });\n client.getQueryCache().build<T, Error>(client, { queryKey: KEY }).setState(state);\n const result = new QueryObserver<T, Error>(client, {\n queryKey: KEY,\n queryFn: notFetchedInTest,\n enabled: false,\n }).getCurrentResult();\n return { ...result, retryState: retryStateOf(result, held) };\n}\n\nconst answered = <T>(data: T): Partial<QueryState<T, Error>> => ({\n data,\n dataUpdatedAt: 1,\n status: 'success',\n});\n\nconst failure = (error: Error): Partial<QueryState<never, Error>> => ({\n error,\n errorUpdatedAt: 2,\n errorUpdateCount: 1,\n fetchFailureCount: 1,\n fetchFailureReason: error,\n status: 'error',\n});\n\nexport const answeredRead = <T>(data: T): BuiltRead<T> => observed<T>(answered(data));\n\nexport const idleRead = <T>(): BuiltRead<T> => observed<T>({});\n\nexport const loadingRead = <T>(): BuiltRead<T> => observed<T>({ fetchStatus: 'fetching' });\n\nexport const failedRead = <T>(error: Error): BuiltRead<T> => observed<T>(failure(error));\n\nexport const retryingRead = <T>(error: Error): BuiltRead<T> =>\n observed<T>({ status: 'pending', fetchStatus: 'fetching', error: null }, error);\n\nexport const fetchingRead = <T>(data: T): BuiltRead<T> =>\n observed<T>({ ...answered(data), fetchStatus: 'fetching' });\n\nexport const answeredThenFailedRead = <T>(data: T, error: Error): BuiltRead<T> =>\n observed<T>({ ...answered(data), ...failure(error) });\n\nexport const retryingAnsweredRead = <T>(data: T, error: Error): BuiltRead<T> =>\n observed<T>({ ...answered(data), ...failure(error), fetchStatus: 'fetching' });\n\nexport interface InfiniteReadSpec<TPage, TParam, TData = InfiniteData<TPage, TParam>> {\n pages?: TPage[];\n pageParams?: TParam[];\n initialPageParam: TParam;\n getNextPageParam: (\n lastPage: TPage,\n allPages: TPage[],\n lastPageParam: TParam,\n allPageParams: TParam[],\n ) => TParam | undefined | null;\n select?: (data: InfiniteData<TPage, TParam>) => TData;\n}\n\nfunction pageParamsOf<TPage, TParam, TData>(\n spec: InfiniteReadSpec<TPage, TParam, TData>,\n pages: TPage[],\n): TParam[] {\n const params = [spec.initialPageParam];\n for (let i = 1; i < pages.length; i++) {\n const next = spec.getNextPageParam(pages[i - 1], pages.slice(0, i), params[i - 1], [...params]);\n if (next === undefined || next === null)\n throw new Error(`page ${i} has no page param: getNextPageParam ends the list before it`);\n params.push(next);\n }\n return params;\n}\n\nfunction observedInfinite<TPage, TParam, TData>(\n spec: InfiniteReadSpec<TPage, TParam, TData>,\n state: Partial<QueryState<InfiniteData<TPage, TParam>, Error>>,\n held: Error | null = null,\n): BuiltInfiniteRead<TData> {\n const client = new QueryClient({ defaultOptions: { queries: { retry: false } } });\n const pages = spec.pages;\n client\n .getQueryCache()\n .build<InfiniteData<TPage, TParam>, Error>(client, { queryKey: KEY })\n .setState({\n ...(pages\n ? {\n data: {\n pages,\n pageParams: spec.pageParams ?? pageParamsOf(spec, pages),\n },\n dataUpdatedAt: 1,\n status: 'success',\n }\n : {}),\n ...state,\n });\n const result = new InfiniteQueryObserver<TPage, Error, TData, QueryKey, TParam>(client, {\n queryKey: KEY,\n queryFn: notFetchedInTest,\n initialPageParam: spec.initialPageParam,\n getNextPageParam: spec.getNextPageParam,\n ...(spec.select ? { select: spec.select } : {}),\n enabled: false,\n }).getCurrentResult();\n return { ...result, retryState: retryStateOf(result, held) };\n}\n\nconst FORWARD = { fetchMore: { direction: 'forward' } } as const;\n\nexport const infiniteRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: InfiniteReadSpec<TPage, TParam, TData> & { pages: TPage[] },\n): BuiltInfiniteRead<TData> => observedInfinite(spec, {});\n\nexport const idleInfiniteRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: Omit<InfiniteReadSpec<TPage, TParam, TData>, 'pages'>,\n): BuiltInfiniteRead<TData> => observedInfinite(spec, {});\n\nexport const loadingInfiniteRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: Omit<InfiniteReadSpec<TPage, TParam, TData>, 'pages'>,\n): BuiltInfiniteRead<TData> => observedInfinite(spec, { fetchStatus: 'fetching' });\n\nexport const failedInfiniteRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: Omit<InfiniteReadSpec<TPage, TParam, TData>, 'pages'>,\n error: Error,\n): BuiltInfiniteRead<TData> => observedInfinite(spec, failure(error));\n\nexport const retryingInfiniteRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: Omit<InfiniteReadSpec<TPage, TParam, TData>, 'pages'>,\n error: Error,\n): BuiltInfiniteRead<TData> =>\n observedInfinite(spec, { status: 'pending', fetchStatus: 'fetching', error: null }, error);\n\nexport const fetchingInfiniteRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: InfiniteReadSpec<TPage, TParam, TData> & { pages: TPage[] },\n): BuiltInfiniteRead<TData> => observedInfinite(spec, { fetchStatus: 'fetching' });\n\nexport const answeredThenFailedInfiniteRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: InfiniteReadSpec<TPage, TParam, TData> & { pages: TPage[] },\n error: Error,\n): BuiltInfiniteRead<TData> => observedInfinite(spec, failure(error));\n\nexport const retryingAnsweredInfiniteRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: InfiniteReadSpec<TPage, TParam, TData> & { pages: TPage[] },\n error: Error,\n): BuiltInfiniteRead<TData> =>\n observedInfinite(spec, { ...failure(error), fetchStatus: 'fetching' });\n\nexport const pausedRetryingAnsweredInfiniteRead = <\n TPage,\n TParam,\n TData = InfiniteData<TPage, TParam>,\n>(\n spec: InfiniteReadSpec<TPage, TParam, TData> & { pages: TPage[] },\n error: Error,\n): BuiltInfiniteRead<TData> => observedInfinite(spec, { ...failure(error), fetchStatus: 'paused' });\n\nexport const fetchingNextPageRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: InfiniteReadSpec<TPage, TParam, TData> & { pages: TPage[] },\n): BuiltInfiniteRead<TData> =>\n observedInfinite(spec, { fetchStatus: 'fetching', fetchMeta: FORWARD });\n\nexport const nextPageFailedRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: InfiniteReadSpec<TPage, TParam, TData> & { pages: TPage[] },\n error: Error,\n): BuiltInfiniteRead<TData> => observedInfinite(spec, { ...failure(error), fetchMeta: FORWARD });\n\nexport const retryingNextPageRead = <TPage, TParam, TData = InfiniteData<TPage, TParam>>(\n spec: InfiniteReadSpec<TPage, TParam, TData> & { pages: TPage[] },\n error: Error,\n): BuiltInfiniteRead<TData> =>\n observedInfinite(spec, { ...failure(error), fetchStatus: 'fetching', fetchMeta: FORWARD });\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ttt-productions/query-core",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.29",
|
|
4
4
|
"description": "Shared TanStack Query (React Query) client defaults, query key helpers, and Firestore integration hooks for TTT Productions apps",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|