UNPKG

shelving

Version:

Toolkit for using data in JavaScript.

31 lines (30 loc) 2.19 kB
import type { MutableArray } from "../util/array.js"; import type { DataKey, Database } from "../util/data.js"; import type { ItemQuery } from "../util/item.js"; import type { Updates } from "../util/update.js"; import type { DatabaseChange, DatabaseChanges } from "./Change.js"; import { AsyncThroughProvider, ThroughProvider } from "./ThroughProvider.js"; /** Synchronous provider that keeps a log of any written changes to its `.changes` property. */ export declare class ChangesProvider<T extends Database> extends ThroughProvider<T> { get changes(): DatabaseChanges<T>; readonly _changes: MutableArray<DatabaseChange<T>>; addItem<K extends DataKey<T>>(collection: K, data: T[K]): string; setItem<K extends DataKey<T>>(collection: K, id: string, data: T[K]): void; updateItem<K extends DataKey<T>>(collection: K, id: string, updates: Updates<T[K]>): void; deleteItem<K extends DataKey<T>>(collection: K, id: string): void; setQuery<K extends DataKey<T>>(collection: K, query: ItemQuery<T[K]>, data: T[K]): void; updateQuery<K extends DataKey<T>>(collection: K, query: ItemQuery<T[K]>, updates: Updates<T[K]>): void; deleteQuery<K extends DataKey<T>>(collection: K, query: ItemQuery<T[K]>): void; } /** Asynchronous provider that keeps a log of any written changes to its `.written` property. */ export declare class AsyncLoggedProvider<T extends Database> extends AsyncThroughProvider<T> { get written(): DatabaseChanges<T>; readonly _written: MutableArray<DatabaseChange<T>>; addItem<K extends DataKey<T>>(collection: K, data: T[K]): Promise<string>; setItem<K extends DataKey<T>>(collection: K, id: string, data: T[K]): Promise<void>; updateItem<K extends DataKey<T>>(collection: K, id: string, updates: Updates<T[K]>): Promise<void>; deleteItem<K extends DataKey<T>>(collection: K, id: string): Promise<void>; setQuery<K extends DataKey<T>>(collection: K, query: ItemQuery<T[K]>, data: T[K]): Promise<void>; updateQuery<K extends DataKey<T>>(collection: K, query: ItemQuery<T[K]>, updates: Updates<T[K]>): Promise<void>; deleteQuery<K extends DataKey<T>>(collection: K, query: ItemQuery<T[K]>): Promise<void>; }