UNPKG

shelving

Version:

Toolkit for using data in JavaScript.

27 lines (26 loc) 1.34 kB
import { BooleanStore } from "../store/BooleanStore.js"; import { OptionalDataStore } from "../store/DataStore.js"; import type { DataKey, Database } from "../util/data.js"; import type { Item } 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 single item. */ export declare class ItemStore<T extends Database, K extends DataKey<T>> extends OptionalDataStore<Item<T[K]>> { readonly provider: AbstractProvider<T>; readonly collection: K; readonly id: string; readonly busy: BooleanStore; /** Get the data of this store (throws `RequiredError` if item doesn't exist). */ get data(): Item<T[K]>; /** Set the data of this store. */ set data(data: T[K] | Item<T[K]>); constructor(collection: K, id: string, 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, provider?: AbstractProvider<T>): void; /** Subscribe this store to a provider. */ connect(provider?: AbstractProvider<T>): Stop; }