Skip to content

Commit bad3afc

Browse files
committed
using api classes.
1 parent c31f159 commit bad3afc

File tree

1 file changed

+23
-10
lines changed

1 file changed

+23
-10
lines changed

packages/firestore/src/remote/serializer.ts

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ import { debugAssert, fail, hardAssert } from '../util/assert';
9494
import { ByteString } from '../util/byte_string';
9595
import { Code, FirestoreError } from '../util/error';
9696
import { isNullOrUndefined } from '../util/types';
97-
97+
import { Query as ApiQuery } from '../lite-api/reference';
9898
import { ExistenceFilter } from './existence_filter';
9999
import { Serializer } from './number_serializer';
100100
import { mapCodeFromRpcCode } from './rpc_error';
@@ -107,6 +107,8 @@ import {
107107
} from './watch_change';
108108
import { AggregateSpec } from '../lite-api/aggregate_types';
109109
import { mapToArray } from '../util/obj';
110+
import {ensureFirestoreConfigured, Firestore} from "../api/database";
111+
import {cast} from "../util/input_validation";
110112

111113
const DIRECTIONS = (() => {
112114
const dirs: { [dir: string]: ProtoOrderDirection } = {};
@@ -904,33 +906,44 @@ export function toQueryTarget(
904906
}
905907

906908
export function queryToProtoQueryTarget(
907-
serializer: JsonProtoSerializer,
908-
query: Query
909-
): { queryTarget: ProtoQueryTarget; parent: ResourcePath } {
910-
return toQueryTarget(serializer, queryToTarget(query));
909+
query: ApiQuery
910+
): { queryTarget: ProtoQueryTarget; parent: ResourcePath } | null {
911+
const firestore = cast(query.firestore, Firestore);
912+
const client = ensureFirestoreConfigured(firestore);
913+
const serializer = client._onlineComponents?.datastore.serializer;
914+
if (serializer === undefined) {
915+
return null;
916+
}
917+
return toQueryTarget(serializer!, queryToTarget(query._query));
911918
}
912919

913920
export function aggregationQueryToProtoRunAggregationQueryRequest<
914921
AggregateSpecType extends AggregateSpec
915922
>(
916-
serializer: JsonProtoSerializer,
917-
query: Query,
923+
query: ApiQuery,
918924
aggregateSpec: AggregateSpecType
919925
): {
920926
request: ProtoRunAggregationQueryRequest;
921927
aliasMap: Record<string, string>;
922928
parent: ResourcePath;
923-
} {
929+
} | null {
924930
const aggregates = mapToArray(aggregateSpec, (aggregate, alias) => {
925931
return new AggregateImpl(
926932
alias,
927933
aggregate.aggregateType,
928934
aggregate._internalFieldPath
929935
);
930936
});
937+
const firestore = cast(query.firestore, Firestore);
938+
const client = ensureFirestoreConfigured(firestore);
939+
const serializer = client._onlineComponents?.datastore.serializer;
940+
if (serializer === undefined) {
941+
return null;
942+
}
943+
931944
return toRunAggregationQueryRequest(
932-
serializer,
933-
queryToAggregateTarget(query),
945+
serializer!,
946+
queryToAggregateTarget(query._query),
934947
aggregates
935948
);
936949
}

0 commit comments

Comments
 (0)