diff --git a/packages/firestore/src/model/mutation.ts b/packages/firestore/src/model/mutation.ts index c6eef58aac5..7778fd49eb4 100644 --- a/packages/firestore/src/model/mutation.ts +++ b/packages/firestore/src/model/mutation.ts @@ -91,9 +91,9 @@ export class MutationResult { * containing field transforms has been committed. Contains one FieldValue * for each FieldTransform that was in the mutation. * - * Will be null if the mutation did not contain any field transforms. + * Will be empty if the mutation did not contain any field transforms. */ - readonly transformResults: Array | null + readonly transformResults: Array ) {} } @@ -434,18 +434,16 @@ function applySetMutationToRemoteDocument( // remote document the server has accepted the mutation so the precondition // must have held. let newData = mutation.value; - if (mutationResult.transformResults) { - const transformResults = serverTransformResults( - mutation.fieldTransforms, - maybeDoc, - mutationResult.transformResults - ); - newData = transformObject( - mutation.fieldTransforms, - newData, - transformResults - ); - } + const transformResults = serverTransformResults( + mutation.fieldTransforms, + maybeDoc, + mutationResult.transformResults + ); + newData = transformObject( + mutation.fieldTransforms, + newData, + transformResults + ); return new Document(mutation.key, mutationResult.version, newData, { hasCommittedMutations: true @@ -519,13 +517,11 @@ function applyPatchMutationToRemoteDocument( return new UnknownDocument(mutation.key, mutationResult.version); } - const transformResults = mutationResult.transformResults - ? serverTransformResults( - mutation.fieldTransforms, - maybeDoc, - mutationResult.transformResults - ) - : []; + const transformResults = serverTransformResults( + mutation.fieldTransforms, + maybeDoc, + mutationResult.transformResults + ); const newData = patchDocument(mutation, maybeDoc, transformResults); return new Document(mutation.key, mutationResult.version, newData, { hasCommittedMutations: true @@ -701,7 +697,7 @@ function applyDeleteMutationToRemoteDocument( mutationResult: MutationResult ): NoDocument { debugAssert( - mutationResult.transformResults == null, + mutationResult.transformResults.length === 0, 'Transform results received by DeleteMutation.' ); diff --git a/packages/firestore/src/remote/serializer.ts b/packages/firestore/src/remote/serializer.ts index 40242d690f3..8fba038547b 100644 --- a/packages/firestore/src/remote/serializer.ts +++ b/packages/firestore/src/remote/serializer.ts @@ -81,7 +81,6 @@ import { Target as ProtoTarget, TargetChangeTargetChangeType as ProtoTargetChangeTargetChangeType, Timestamp as ProtoTimestamp, - Value as ProtoValue, Write as ProtoWrite, WriteResult as ProtoWriteResult } from '../protos/firestore_proto_api'; @@ -698,11 +697,7 @@ function fromWriteResult( version = fromVersion(commitTime); } - let transformResults: ProtoValue[] | null = null; - if (proto.transformResults && proto.transformResults.length > 0) { - transformResults = proto.transformResults; - } - return new MutationResult(version, transformResults); + return new MutationResult(version, proto.transformResults || []); } export function fromWriteResults( diff --git a/packages/firestore/test/unit/local/local_store.test.ts b/packages/firestore/test/unit/local/local_store.test.ts index 6a68e9ca7a6..bd67b579c57 100644 --- a/packages/firestore/test/unit/local/local_store.test.ts +++ b/packages/firestore/test/unit/local/local_store.test.ts @@ -255,7 +255,7 @@ class LocalStoreTester { const mutationResults = [ new MutationResult( ver, - options.transformResult ? [options.transformResult] : null + options.transformResult ? [options.transformResult] : [] ) ]; const write = MutationBatchResult.from(batch, ver, mutationResults); diff --git a/packages/firestore/test/unit/model/mutation.test.ts b/packages/firestore/test/unit/model/mutation.test.ts index eacf47df2d5..1083b0b63be 100644 --- a/packages/firestore/test/unit/model/mutation.test.ts +++ b/packages/firestore/test/unit/model/mutation.test.ts @@ -582,7 +582,7 @@ describe('Mutation', () => { const mutationResult = new MutationResult( version(7), - /*transformResults=*/ null + /*transformResults=*/ [] ); const docV7Unknown = unknownDoc('collection/key', 7); const docV7Deleted = deletedDoc('collection/key', 7, { diff --git a/packages/firestore/test/util/helpers.ts b/packages/firestore/test/util/helpers.ts index 0af124b2a84..ced9a68904d 100644 --- a/packages/firestore/test/util/helpers.ts +++ b/packages/firestore/test/util/helpers.ts @@ -284,7 +284,7 @@ export function deleteMutation(keyStr: string): DeleteMutation { export function mutationResult( testVersion: TestSnapshotVersion ): MutationResult { - return new MutationResult(version(testVersion), /* transformResults= */ null); + return new MutationResult(version(testVersion), /* transformResults= */ []); } export function bound(