UNPKG

shelving

Version:

Toolkit for using data in JavaScript.

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