UNPKG

shelving

Version:

Toolkit for using data in JavaScript.

27 lines (26 loc) 1.41 kB
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; }