UNPKG

shelving

Version:

Toolkit for using data in JavaScript.

28 lines (27 loc) 1.65 kB
import type { Firestore } from "firebase/firestore"; import { AsyncProvider } from "../../db/Provider.js"; import type { Data, DataKey, Database } from "../../util/data.js"; import type { ItemQuery, Items, OptionalItem } from "../../util/item.js"; import type { Updates } from "../../util/update.js"; /** * Firestore client database provider. * - Works with the Firebase JS SDK. * - Supports offline mode. * - Supports realtime subscriptions. */ export declare class FirestoreClientProvider<T extends Database> extends AsyncProvider<T> { private readonly _firestore; constructor(firestore: Firestore); getItem<K extends DataKey<T>>(c: K, id: string): Promise<OptionalItem<T[K]>>; getItemSequence<K extends DataKey<T>>(c: K, id: string): AsyncIterable<OptionalItem<T[K]>>; addItem<K extends DataKey<T>>(c: K, data: Data): Promise<string>; setItem<K extends DataKey<T>>(c: K, id: string, data: Data): Promise<void>; updateItem<K extends DataKey<T>>(c: K, id: string, updates: Updates<T[K]>): Promise<void>; deleteItem<K extends DataKey<T>>(c: K, id: string): Promise<void>; countQuery<K extends DataKey<T>>(c: K, q?: ItemQuery<T[K]>): Promise<number>; getQuery<K extends DataKey<T>>(c: K, q?: ItemQuery<T[K]>): Promise<Items<T[K]>>; getQuerySequence<K extends DataKey<T>>(c: K, q?: ItemQuery<T[K]>): AsyncIterable<Items<T[K]>>; setQuery<K extends DataKey<T>>(c: K, q: ItemQuery<T[K]>, data: Data): Promise<void>; updateQuery<K extends DataKey<T>>(c: K, q: ItemQuery<T[K]>, updates: Updates<T[K]>): Promise<void>; deleteQuery<K extends DataKey<T>>(c: K, q: ItemQuery<T[K]>): Promise<void>; }