UNPKG

shelving

Version:

Toolkit for using data in JavaScript.

26 lines (25 loc) 1.59 kB
import { Firestore } from "@google-cloud/firestore"; import { AsyncProvider } from "../../db/Provider.js"; import type { DataKey, Database } from "../../util/data.js"; import type { ItemQuery, Items, OptionalItem } from "../../util/item.js"; import type { Updates } from "../../util/update.js"; /** * Firestore server database provider. * - Works with the Firebase Admin SDK for Node.JS */ export declare class FirestoreServerProvider<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: T[K]): Promise<string>; setItem<K extends DataKey<T>>(c: K, id: string, data: T[K]): 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: T[K]): Promise<void>; updateQuery<K extends DataKey<T>>(c: K, q: ItemQuery<T[K]>, updates: Updates): Promise<void>; deleteQuery<K extends DataKey<T>>(c: K, q: ItemQuery<T[K]>): Promise<void>; }