diff --git a/dev/src/index.ts b/dev/src/index.ts index ef660dc8b..35f06fd09 100644 --- a/dev/src/index.ts +++ b/dev/src/index.ts @@ -91,6 +91,7 @@ export { Precondition, SetOptions, } from './types'; +export {Status as GrpcStatus} from 'google-gax'; const libVersion = require('../../package.json').version; setLibVersion(libVersion); diff --git a/dev/test/typescript.ts b/dev/test/typescript.ts index 33c59db98..ee3845c9b 100644 --- a/dev/test/typescript.ts +++ b/dev/test/typescript.ts @@ -34,6 +34,7 @@ import SetOptions = FirebaseFirestore.SetOptions; import FirestoreDataConverter = FirebaseFirestore.FirestoreDataConverter; import Timestamp = FirebaseFirestore.Timestamp; import Settings = FirebaseFirestore.Settings; +import GrpcStatus = FirebaseFirestore.GrpcStatus; // This test verifies the Typescript typings and is not meant for execution. xdescribe('firestore.d.ts', () => { @@ -352,4 +353,8 @@ xdescribe('firestore.d.ts', () => { const seconds: number = timestamp.seconds; const nanoseconds: number = timestamp.nanoseconds; }); + + it('has typings for GrpcStatus', () => { + const status = GrpcStatus.ABORTED; + }); }); diff --git a/types/firestore.d.ts b/types/firestore.d.ts index e50671e69..e338106d7 100644 --- a/types/firestore.d.ts +++ b/types/firestore.d.ts @@ -1452,6 +1452,29 @@ declare namespace FirebaseFirestore { * API and the underlying Firestore v1 RPCs. */ export const v1: {FirestoreClient: any, FirestoreAdminClient: any}; + + /** + * Status codes returned by Firestore's gRPC calls. + */ + export enum GrpcStatus { + OK = 0, + CANCELLED = 1, + UNKNOWN = 2, + INVALID_ARGUMENT = 3, + DEADLINE_EXCEEDED = 4, + NOT_FOUND = 5, + ALREADY_EXISTS = 6, + PERMISSION_DENIED = 7, + RESOURCE_EXHAUSTED = 8, + FAILED_PRECONDITION = 9, + ABORTED = 10, + OUT_OF_RANGE = 11, + UNIMPLEMENTED = 12, + INTERNAL = 13, + UNAVAILABLE = 14, + DATA_LOSS = 15, + UNAUTHENTICATED = 16 + } } declare module '@google-cloud/firestore' {