UNPKG

shelving

Version:

Toolkit for using data in JavaScript.

34 lines (33 loc) 2.47 kB
import { Firestore } from "@google-cloud/firestore"; import type { Collection } from "../../db/collection/Collection.js"; import { DBProvider } from "../../db/provider/DBProvider.js"; import type { Data } from "../../util/data.js"; import type { Item, Items, ItemsSequence, OptionalItem, OptionalItemSequence } from "../../util/item.js"; import { type Query } 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<I extends string = string, T extends Data = Data> extends DBProvider<I, T> { private readonly _firestore; constructor(firestore?: Firestore); /** Create a corresponding `FirestoreCollection` reference from a collection. */ private _getCollection; /** Create a corresponding `FirestoreQuery` reference from a collection and query. */ private _getQuery; /** Perform a bulk update on a set of documents using a `BulkWriter` */ private _bulkWrite; getItem<II extends I, TT extends T>(collection: Collection<string, II, TT>, id: II): Promise<OptionalItem<II, TT>>; getItemSequence<II extends I, TT extends T>(c: Collection<string, II, TT>, id: II): OptionalItemSequence<II, TT>; addItem<II extends I, TT extends T>(c: Collection<string, II, TT>, data: TT): Promise<II>; setItem<II extends I, TT extends T>(c: Collection<string, II, TT>, id: II, data: TT): Promise<void>; updateItem<II extends I, TT extends T>(c: Collection<string, II, TT>, id: II, updates: Updates<Item<II, TT>>): Promise<void>; deleteItem<II extends I, TT extends T>(c: Collection<string, II, TT>, id: II): Promise<void>; countQuery<II extends I, TT extends T>(c: Collection<string, II, TT>, q?: Query<Item<II, TT>>): Promise<number>; getQuery<II extends I, TT extends T>(c: Collection<string, II, TT>, q?: Query<Item<II, TT>>): Promise<Items<II, TT>>; getQuerySequence<II extends I, TT extends T>(c: Collection<string, II, TT>, q?: Query<Item<II, TT>>): ItemsSequence<II, TT>; setQuery<II extends I, TT extends T>(c: Collection<string, II, TT>, q: Query<Item<II, TT>>, data: TT): Promise<void>; updateQuery<II extends I, TT extends T>(c: Collection<string, II, TT>, q: Query<Item<II, TT>>, updates: Updates<TT>): Promise<void>; deleteQuery<II extends I, TT extends T>(c: Collection<string, II, TT>, q: Query<Item<II, TT>>): Promise<void>; }