@tanstack/svelte-db
Version:
Svelte integration for @tanstack/db
41 lines (40 loc) • 2.42 kB
TypeScript
import type { UseLiveQueryReturnWithCollection, useLiveQuery } from './useLiveQuery.svelte.js';
import type { Collection, Context, InferResultType, InitialQueryBuilder, NonSingleResult, QueryBuilder } from '@tanstack/db';
type MaybeGetter<T> = T | (() => T);
type InfiniteQueryOptions = {
pageSize?: number;
initialPageParam?: number;
};
export type LiveInfiniteQueryConfig<TRow> = InfiniteQueryOptions & {
/**
* @deprecated Pagination uses the shared controller's peek-ahead strategy.
* This remains for compatibility with TanStack Query conventions.
*/
getNextPageParam?: (lastPage: Array<TRow>, allPages: Array<Array<TRow>>, lastPageParam: number, allPageParams: Array<number>) => number | undefined;
};
export type UseLiveInfiniteQueryConfig<TContext extends Context> = LiveInfiniteQueryConfig<InferResultType<TContext>[number]>;
export type UseLiveInfiniteQueryReturn<TContext extends Context> = Omit<ReturnType<typeof useLiveQuery<TContext>>, `data`> & {
data: InferResultType<TContext>;
pages: Array<Array<InferResultType<TContext>[number]>>;
pageParams: Array<number>;
fetchNextPage: () => Promise<void>;
hasNextPage: boolean;
isFetchingNextPage: boolean;
error: unknown;
};
export type UseLiveInfiniteQueryReturnWithCollection<TResult extends object, TKey extends string | number, TUtils extends Record<string, any>> = Omit<UseLiveQueryReturnWithCollection<TResult, TKey, TUtils, Array<TResult>>, `data`> & {
data: Array<TResult>;
pages: Array<Array<TResult>>;
pageParams: Array<number>;
fetchNextPage: () => Promise<void>;
hasNextPage: boolean;
isFetchingNextPage: boolean;
error: unknown;
};
/**
* Create a Svelte-native reactive view over the shared live-query window
* controller. The query must include an `orderBy` clause.
*/
export declare function useLiveInfiniteQuery<TResult extends object, TKey extends string | number, TUtils extends Record<string, any>>(liveQueryCollection: MaybeGetter<Collection<TResult, TKey, TUtils> & NonSingleResult>, config: LiveInfiniteQueryConfig<TResult>): UseLiveInfiniteQueryReturnWithCollection<TResult, TKey, TUtils>;
export declare function useLiveInfiniteQuery<TContext extends Context>(queryFn: (q: InitialQueryBuilder) => QueryBuilder<TContext>, config: UseLiveInfiniteQueryConfig<TContext>, deps?: Array<() => unknown>): UseLiveInfiniteQueryReturn<TContext>;
export {};