Skip to content

Commit 456d3e6

Browse files
committed
finish up lite-api
1 parent 0392a37 commit 456d3e6

File tree

10 files changed

+457
-159
lines changed

10 files changed

+457
-159
lines changed

packages/firestore/src/lite-api/aggregate.ts

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import {
3232
import { getDatastore } from './components';
3333
import { Firestore } from './database';
3434
import { FieldPath } from './field_path';
35-
import {DocumentData, Query, queryEqual} from './reference';
35+
import { DocumentData, Query, queryEqual } from './reference';
3636
import { LiteUserDataWriter } from './reference_impl';
3737
import { fieldPathFromArgument } from './user_data_reader';
3838

@@ -50,9 +50,16 @@ import { fieldPathFromArgument } from './user_data_reader';
5050
* retrieved from `snapshot.data().count`, where `snapshot` is the
5151
* `AggregateQuerySnapshot` to which the returned Promise resolves.
5252
*/
53-
export function getCount<AppType = DocumentData, DbType extends DocumentData = AppType extends DocumentData ? AppType : DocumentData>(
53+
export function getCount<
54+
AppType = DocumentData,
55+
DbType extends DocumentData = AppType extends DocumentData
56+
? AppType
57+
: DocumentData
58+
>(
5459
query: Query<AppType, DbType>
55-
): Promise<AggregateQuerySnapshot<{ count: AggregateField<number> }, AppType, DbType>> {
60+
): Promise<
61+
AggregateQuerySnapshot<{ count: AggregateField<number> }, AppType, DbType>
62+
> {
5663
const countQuerySpec: { count: AggregateField<number> } = {
5764
count: count()
5865
};
@@ -87,7 +94,13 @@ export function getCount<AppType = DocumentData, DbType extends DocumentData = A
8794
* ```
8895
* @internal TODO (sum/avg) remove when public
8996
*/
90-
export function getAggregate<AggregateSpecType extends AggregateSpec, AppType = DocumentData, DbType extends DocumentData = AppType extends DocumentData ? AppType : DocumentData>(
97+
export function getAggregate<
98+
AggregateSpecType extends AggregateSpec,
99+
AppType = DocumentData,
100+
DbType extends DocumentData = AppType extends DocumentData
101+
? AppType
102+
: DocumentData
103+
>(
91104
query: Query<AppType, DbType>,
92105
aggregateSpec: AggregateSpecType
93106
): Promise<AggregateQuerySnapshot<AggregateSpecType, AppType, DbType>> {
@@ -112,13 +125,23 @@ export function getAggregate<AggregateSpecType extends AggregateSpec, AppType =
112125
);
113126
}
114127

115-
function convertToAggregateQuerySnapshot<AggregateSpecType extends AggregateSpec, AppType = DocumentData, DbType extends DocumentData = AppType extends DocumentData ? AppType : DocumentData>(
128+
function convertToAggregateQuerySnapshot<
129+
AggregateSpecType extends AggregateSpec,
130+
AppType = DocumentData,
131+
DbType extends DocumentData = AppType extends DocumentData
132+
? AppType
133+
: DocumentData
134+
>(
116135
firestore: Firestore,
117136
query: Query<AppType, DbType>,
118137
aggregateResult: ObjectValue
119138
): AggregateQuerySnapshot<AggregateSpecType, AppType, DbType> {
120139
const userDataWriter = new LiteUserDataWriter(firestore);
121-
const querySnapshot = new AggregateQuerySnapshot<AggregateSpecType, AppType, DbType>(query, userDataWriter, aggregateResult);
140+
const querySnapshot = new AggregateQuerySnapshot<
141+
AggregateSpecType,
142+
AppType,
143+
DbType
144+
>(query, userDataWriter, aggregateResult);
122145
return querySnapshot;
123146
}
124147

packages/firestore/src/lite-api/aggregate_types.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { AggregateType } from '../core/aggregate';
1919
import { ObjectValue } from '../model/object_value';
2020
import { FieldPath as InternalFieldPath } from '../model/path';
2121

22-
import {DocumentData, Query} from './reference';
22+
import { DocumentData, Query } from './reference';
2323
import { AbstractUserDataWriter } from './user_data_writer';
2424

2525
export { AggregateType };
@@ -71,7 +71,13 @@ export type AggregateSpecData<T extends AggregateSpec> = {
7171
/**
7272
* The results of executing an aggregation query.
7373
*/
74-
export class AggregateQuerySnapshot<AggregateSpecType extends AggregateSpec, AppType = DocumentData, DbType extends DocumentData = AppType extends DocumentData ? AppType : DocumentData> {
74+
export class AggregateQuerySnapshot<
75+
AggregateSpecType extends AggregateSpec,
76+
AppType = DocumentData,
77+
DbType extends DocumentData = AppType extends DocumentData
78+
? AppType
79+
: DocumentData
80+
> {
7581
/** A type string to uniquely identify instances of this class. */
7682
readonly type = 'AggregateQuerySnapshot';
7783

packages/firestore/src/lite-api/query.ts

Lines changed: 49 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ import {
5353
} from '../util/input_validation';
5454

5555
import { FieldPath } from './field_path';
56-
import {DocumentData, DocumentReference, Query} from './reference';
56+
import { DocumentData, DocumentReference, Query } from './reference';
5757
import { DocumentSnapshot, fieldPathFromArgument } from './snapshot';
5858
import {
5959
newUserDataReader,
@@ -95,7 +95,9 @@ export abstract class AppliableConstraint {
9595
* Takes the provided {@link Query} and returns a copy of the {@link Query} with this
9696
* {@link AppliableConstraint} applied.
9797
*/
98-
abstract _apply<AppType, DbType extends DocumentData>(query: Query<AppType, DbType>): Query<AppType, DbType>;
98+
abstract _apply<AppType, DbType extends DocumentData>(
99+
query: Query<AppType, DbType>
100+
): Query<AppType, DbType>;
99101
}
100102

101103
/**
@@ -114,7 +116,9 @@ export abstract class QueryConstraint extends AppliableConstraint {
114116
* Takes the provided {@link Query} and returns a copy of the {@link Query} with this
115117
* {@link AppliableConstraint} applied.
116118
*/
117-
abstract _apply<AppType, DbType extends DocumentData>(query: Query<AppType, DbType>): Query<AppType, DbType>;
119+
abstract _apply<AppType, DbType extends DocumentData>(
120+
query: Query<AppType, DbType>
121+
): Query<AppType, DbType>;
118122
}
119123

120124
/**
@@ -131,7 +135,12 @@ export abstract class QueryConstraint extends AppliableConstraint {
131135
* @throws if any of the provided query constraints cannot be combined with the
132136
* existing or new constraints.
133137
*/
134-
export function query<AppType = DocumentData, DbType extends DocumentData = AppType extends DocumentData ? AppType : DocumentData>(
138+
export function query<
139+
AppType = DocumentData,
140+
DbType extends DocumentData = AppType extends DocumentData
141+
? AppType
142+
: DocumentData
143+
>(
135144
query: Query<AppType, DbType>,
136145
compositeFilter: QueryCompositeFilterConstraint,
137146
...queryConstraints: QueryNonFilterConstraint[]
@@ -147,12 +156,22 @@ export function query<AppType = DocumentData, DbType extends DocumentData = AppT
147156
* @throws if any of the provided query constraints cannot be combined with the
148157
* existing or new constraints.
149158
*/
150-
export function query<AppType = DocumentData, DbType extends DocumentData = AppType extends DocumentData ? AppType : DocumentData>(
159+
export function query<
160+
AppType = DocumentData,
161+
DbType extends DocumentData = AppType extends DocumentData
162+
? AppType
163+
: DocumentData
164+
>(
151165
query: Query<AppType, DbType>,
152166
...queryConstraints: QueryConstraint[]
153167
): Query<AppType, DbType>;
154168

155-
export function query<AppType = DocumentData, DbType extends DocumentData = AppType extends DocumentData ? AppType : DocumentData>(
169+
export function query<
170+
AppType = DocumentData,
171+
DbType extends DocumentData = AppType extends DocumentData
172+
? AppType
173+
: DocumentData
174+
>(
156175
query: Query<AppType, DbType>,
157176
queryConstraint: QueryCompositeFilterConstraint | QueryConstraint | undefined,
158177
...additionalQueryConstraints: Array<
@@ -205,7 +224,9 @@ export class QueryFieldFilterConstraint extends QueryConstraint {
205224
return new QueryFieldFilterConstraint(_field, _op, _value);
206225
}
207226

208-
_apply<AppType, DbType extends DocumentData>(query: Query<AppType, DbType>): Query<AppType, DbType> {
227+
_apply<AppType, DbType extends DocumentData>(
228+
query: Query<AppType, DbType>
229+
): Query<AppType, DbType> {
209230
const filter = this._parse(query);
210231
validateNewFieldFilter(query._query, filter);
211232
return new Query<AppType, DbType>(
@@ -215,7 +236,9 @@ export class QueryFieldFilterConstraint extends QueryConstraint {
215236
);
216237
}
217238

218-
_parse<AppType, DbType extends DocumentData>(query: Query<AppType, DbType>): FieldFilter {
239+
_parse<AppType, DbType extends DocumentData>(
240+
query: Query<AppType, DbType>
241+
): FieldFilter {
219242
const reader = newUserDataReader(query.firestore);
220243
const filter = newQueryFilter(
221244
query._query,
@@ -295,7 +318,9 @@ export class QueryCompositeFilterConstraint extends AppliableConstraint {
295318
return new QueryCompositeFilterConstraint(type, _queryConstraints);
296319
}
297320

298-
_parse<AppType, DbType extends DocumentData>(query: Query<AppType, DbType>): Filter {
321+
_parse<AppType, DbType extends DocumentData>(
322+
query: Query<AppType, DbType>
323+
): Filter {
299324
const parsedFilters = this._queryConstraints
300325
.map(queryConstraint => {
301326
return queryConstraint._parse(query);
@@ -309,7 +334,9 @@ export class QueryCompositeFilterConstraint extends AppliableConstraint {
309334
return CompositeFilter.create(parsedFilters, this._getOperator());
310335
}
311336

312-
_apply<AppType, DbType extends DocumentData>(query: Query<AppType, DbType>): Query<AppType, DbType> {
337+
_apply<AppType, DbType extends DocumentData>(
338+
query: Query<AppType, DbType>
339+
): Query<AppType, DbType> {
313340
const parsedFilter = this._parse(query);
314341
if (parsedFilter.getFilters().length === 0) {
315342
// Return the existing query if not adding any more filters (e.g. an empty
@@ -435,7 +462,9 @@ export class QueryOrderByConstraint extends QueryConstraint {
435462
return new QueryOrderByConstraint(_field, _direction);
436463
}
437464

438-
_apply<AppType, DbType extends DocumentData>(query: Query<AppType, DbType>): Query<AppType, DbType> {
465+
_apply<AppType, DbType extends DocumentData>(
466+
query: Query<AppType, DbType>
467+
): Query<AppType, DbType> {
439468
const orderBy = newQueryOrderBy(query._query, this._field, this._direction);
440469
return new Query(
441470
query.firestore,
@@ -500,7 +529,9 @@ export class QueryLimitConstraint extends QueryConstraint {
500529
return new QueryLimitConstraint(type, _limit, _limitType);
501530
}
502531

503-
_apply<AppType, DbType extends DocumentData>(query: Query<AppType, DbType>): Query<AppType, DbType> {
532+
_apply<AppType, DbType extends DocumentData>(
533+
query: Query<AppType, DbType>
534+
): Query<AppType, DbType> {
504535
return new Query<AppType, DbType>(
505536
query.firestore,
506537
query.converter,
@@ -564,7 +595,9 @@ export class QueryStartAtConstraint extends QueryConstraint {
564595
return new QueryStartAtConstraint(type, _docOrFields, _inclusive);
565596
}
566597

567-
_apply<AppType, DbType extends DocumentData>(query: Query<AppType, DbType>): Query<AppType, DbType> {
598+
_apply<AppType, DbType extends DocumentData>(
599+
query: Query<AppType, DbType>
600+
): Query<AppType, DbType> {
568601
const bound = newQueryBoundFromDocOrFields(
569602
query,
570603
this.type,
@@ -671,7 +704,9 @@ export class QueryEndAtConstraint extends QueryConstraint {
671704
return new QueryEndAtConstraint(type, _docOrFields, _inclusive);
672705
}
673706

674-
_apply<AppType, DbType extends DocumentData>(query: Query<AppType, DbType>): Query<AppType, DbType> {
707+
_apply<AppType, DbType extends DocumentData>(
708+
query: Query<AppType, DbType>
709+
): Query<AppType, DbType> {
675710
const bound = newQueryBoundFromDocOrFields(
676711
query,
677712
this.type,

0 commit comments

Comments
 (0)