UNPKG

shelving

Version:

Toolkit for using data in JavaScript.

29 lines (28 loc) 1.78 kB
import type { Firestore } from "firebase/firestore"; import { AsyncProvider } from "../../db/Provider.js"; import type { Data, Database, DataKey } from "../../util/data.js"; import type { Items, OptionalItem } from "../../util/item.js"; import type { ItemQuery } from "../../util/query.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<string, T> { private readonly _firestore; constructor(firestore: Firestore); getItem<K extends DataKey<T>>(c: K, id: string): Promise<OptionalItem<string, T[K]>>; getItemSequence<K extends DataKey<T>>(c: K, id: string): AsyncIterable<OptionalItem<string, 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<string, T[K]>): Promise<number>; getQuery<K extends DataKey<T>>(c: K, q?: ItemQuery<string, T[K]>): Promise<Items<string, T[K]>>; getQuerySequence<K extends DataKey<T>>(c: K, q?: ItemQuery<string, T[K]>): AsyncIterable<Items<string, T[K]>>; setQuery<K extends DataKey<T>>(c: K, q: ItemQuery<string, T[K]>, data: Data): Promise<void>; updateQuery<K extends DataKey<T>>(c: K, q: ItemQuery<string, T[K]>, updates: Updates<T[K]>): Promise<void>; deleteQuery<K extends DataKey<T>>(c: K, q: ItemQuery<string, T[K]>): Promise<void>; }