UNPKG

shelving

Version:

Toolkit for using data in JavaScript.

38 lines (37 loc) 1.63 kB
import { ArrayStore } from "../store/ArrayStore.js"; import { BooleanStore } from "../store/BooleanStore.js"; import type { DataKey, Database } from "../util/data.js"; import type { Item, ItemQuery } from "../util/item.js"; import type { Stop } from "../util/start.js"; import type { MemoryProvider } from "./MemoryProvider.js"; import type { AbstractProvider } from "./Provider.js"; /** Store a set of multiple items. */ export declare class QueryStore<T extends Database, K extends DataKey<T>> extends ArrayStore<Item<T[K]>> { readonly provider: AbstractProvider<T>; readonly collection: K; readonly query: ItemQuery<T[K]>; readonly busy: BooleanStore; readonly limit: number; /** Can more items be loaded after the current result. */ get hasMore(): boolean; private _hasMore; /** Get the first item in this store. */ get first(): Item<T[K]>; /** Get the last item in this store. */ get last(): Item<T[K]>; constructor(collection: K, query: ItemQuery<T[K]>, provider: AbstractProvider<T>, memory?: MemoryProvider<T>); /** Refresh this store from the source provider. */ refresh(provider?: AbstractProvider<T>): void; private _refresh; /** Refresh this store if data in the cache is older than `maxAge` (in milliseconds). */ refreshStale(maxAge: number): void; /** Subscribe this store to a provider. */ connect(provider?: AbstractProvider<T>): Stop; /** * Load more items after the last once. * - Promise that needs to be handled. */ loadMore(): void; private _loadMore; [Symbol.iterator](): Iterator<Item<T[K]>>; }