shelving
Version:
Toolkit for using data in JavaScript.
27 lines (26 loc) • 1.41 kB
TypeScript
import { BooleanStore } from "../store/BooleanStore.js";
import { OptionalDataStore } from "../store/DataStore.js";
import type { Database, DataKey } from "../util/data.js";
import type { Identifier, Item } from "../util/item.js";
import type { StopCallback } from "../util/start.js";
import type { MemoryProvider } from "./MemoryProvider.js";
import type { AbstractProvider } from "./Provider.js";
/** Store a single item. */
export declare class ItemStore<I extends Identifier, T extends Database, K extends DataKey<T>> extends OptionalDataStore<Item<I, T[K]>> {
readonly provider: AbstractProvider<I, T>;
readonly collection: K;
readonly id: I;
readonly busy: BooleanStore;
/** Get the data of this store (throws `RequiredError` if item doesn't exist). */
get data(): Item<I, T[K]>;
/** Set the data of this store. */
set data(data: T[K] | Item<I, T[K]>);
constructor(collection: K, id: I, provider: AbstractProvider<I, T>, memory?: MemoryProvider<I, T>);
/** Refresh this store from the source provider. */
refresh(provider?: AbstractProvider<I, T>): void;
private _refresh;
/** Refresh this store if data in the cache is older than `maxAge` (in milliseconds). */
refreshStale(maxAge: number, provider?: AbstractProvider<I, T>): void;
/** Subscribe this store to a provider. */
connect(provider?: AbstractProvider<I, T>): StopCallback;
}