UNPKG

shelving

Version:

Toolkit for using data in JavaScript.

46 lines (45 loc) 3.61 kB
import type { DataKey, Database } from "../util/data.js"; import type { Item, ItemQuery, Items, OptionalItem } from "../util/item.js"; import type { Sourceable } from "../util/source.js"; import type { Updates } from "../util/update.js"; import type { AsyncProvider, Provider } from "./Provider.js"; /** A provider that passes through to a synchronous source. */ export declare class ThroughProvider<T extends Database> implements Provider<T>, Sourceable<Provider<T>> { readonly source: Provider<T>; constructor(source: Provider<T>); getItem<K extends DataKey<T>>(collection: K, id: string): OptionalItem<T[K]>; requireItem<K extends DataKey<T>>(collection: K, id: string): Item<T[K]>; getItemSequence<K extends DataKey<T>>(collection: K, id: string): AsyncIterable<OptionalItem<T[K]>>; 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, update: Updates<T[K]>): void; deleteItem<K extends DataKey<T>>(collection: K, id: string): void; countQuery<K extends DataKey<T>>(collection: K, query?: ItemQuery<T[K]>): number; getQuery<K extends DataKey<T>>(collection: K, query?: ItemQuery<T[K]>): Items<T[K]>; getQuerySequence<K extends DataKey<T>>(collection: K, query?: ItemQuery<T[K]>): AsyncIterable<Items<T[K]>>; 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]>, update: Updates<T[K]>): void; deleteQuery<K extends DataKey<T>>(collection: K, query: ItemQuery<T[K]>): void; getFirst<K extends DataKey<T>>(collection: K, query: ItemQuery<T[K]>): OptionalItem<T[K]>; requireFirst<K extends DataKey<T>>(collection: K, query: ItemQuery<T[K]>): Item<T[K]>; } /** A provider that passes through to an asynchronous source. */ export declare class AsyncThroughProvider<T extends Database> implements AsyncProvider<T>, Sourceable<AsyncProvider<T>> { readonly source: AsyncProvider<T>; constructor(source: AsyncProvider<T>); getItem<K extends DataKey<T>>(collection: K, id: string): Promise<OptionalItem<T[K]>>; requireItem<K extends DataKey<T>>(collection: K, id: string): Promise<Item<T[K]>>; getItemSequence<K extends DataKey<T>>(collection: K, id: string): AsyncIterable<OptionalItem<T[K]>>; 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>; countQuery<K extends DataKey<T>>(collection: K, query?: ItemQuery<T[K]>): Promise<number>; getQuery<K extends DataKey<T>>(collection: K, query?: ItemQuery<T[K]>): Promise<Items<T[K]>>; getQuerySequence<K extends DataKey<T>>(collection: K, query?: ItemQuery<T[K]>): AsyncIterable<Items<T[K]>>; 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>; getFirst<K extends DataKey<T>>(collection: K, query: ItemQuery<T[K]>): Promise<OptionalItem<T[K]>>; requireFirst<K extends DataKey<T>>(collection: K, query: ItemQuery<T[K]>): Promise<Item<T[K]>>; }