UNPKG

@firebase/firestore

Version:

The Cloud Firestore component of the Firebase JS SDK.

81 lines (80 loc) 2.86 kB
/** * @license * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { LoadBundleTaskProgress } from '@firebase/firestore-types'; import { DocumentMap } from '../model/collections'; import { MutableDocument } from '../model/document'; import { DocumentKey } from '../model/document_key'; import { BundledDocumentMetadata as ProtoBundledDocumentMetadata } from '../protos/firestore_bundle_proto'; import { Document as ApiDocument, Timestamp as ApiTimestamp } from '../protos/firestore_proto_api'; import { Query } from './query'; import { SnapshotVersion } from './snapshot_version'; /** * Represents a bundled document, including the metadata and the document * itself, if it exists. */ export interface BundledDocument { metadata: ProtoBundledDocumentMetadata; document?: ApiDocument; } /** * An array of `BundledDocument`. */ export type BundledDocuments = BundledDocument[]; export interface BundleLoadResult { readonly progress: LoadBundleTaskProgress; readonly changedCollectionGroups: Set<string>; readonly changedDocs: DocumentMap; } /** * Represents a Firestore bundle saved by the SDK in its local storage. */ export interface BundleMetadata { /** * Id of the bundle. It is used together with `createTime` to determine if a * bundle has been loaded by the SDK. */ readonly id: string; /** Schema version of the bundle. */ readonly version: number; /** * Set to the snapshot version of the bundle if created by the Server SDKs. * Otherwise set to SnapshotVersion.MIN. */ readonly createTime: SnapshotVersion; } /** * Represents a Query saved by the SDK in its local storage. */ export interface NamedQuery { /** The name of the query. */ readonly name: string; /** The underlying query associated with `name`. */ readonly query: Query; /** The time at which the results for this query were read. */ readonly readTime: SnapshotVersion; } /** * Helper to convert objects from bundles to model objects in the SDK. */ export interface BundleConverter { toDocumentKey(name: string): DocumentKey; /** * Converts a BundleDocument to a MutableDocument. */ toMutableDocument(bundledDoc: BundledDocument): MutableDocument; toSnapshotVersion(time: ApiTimestamp): SnapshotVersion; }