@@ -21,16 +21,15 @@ import { CountQueryRunner } from '../core/count_query_runner';
21
21
import { cast } from '../util/input_validation' ;
22
22
23
23
import {
24
- AggregateField , AggregateFieldSpec ,
24
+ AggregateField ,
25
25
AggregateQuerySnapshot ,
26
- AggregateSpec , AggregateType , AggregateFieldType , AggregateData
26
+ AggregateSpec ,
27
27
} from './aggregate_types' ;
28
28
import { getDatastore } from './components' ;
29
29
import { Firestore } from './database' ;
30
30
import { Query , queryEqual } from './reference' ;
31
31
import { LiteUserDataWriter } from './reference_impl' ;
32
32
import { FieldPath } from "./field_path" ;
33
- import { AggregateQueryRunner } from "../core/aggregate_query_runner" ;
34
33
35
34
/**
36
35
* Calculates the number of documents in the result set of the given query,
@@ -55,33 +54,20 @@ export function getCount(
55
54
return new CountQueryRunner ( query , datastore , userDataWriter ) . run ( ) ;
56
55
}
57
56
57
+ /**
58
+ * TODO
59
+ * @param query
60
+ * @param aggregates
61
+ */
58
62
export function getAggregateFromServer < T extends AggregateSpec > (
59
63
query : Query < unknown > ,
60
64
aggregates : T
61
- ) : Promise < AggregateQuerySnapshot < T > > ;
62
-
63
- export function getAggregateFromServer < T extends AggregateFieldType > (
64
- query : Query < unknown > ,
65
- aggregateField : T
66
- ) : Promise < AggregateQuerySnapshot < T > > ;
67
-
68
- export function getAggregateFromServer < T extends AggregateSpec | AggregateFieldType > (
69
- query : Query < unknown > ,
70
- aggregateFieldOrSpec : T
71
65
) : Promise < AggregateQuerySnapshot < T > > {
72
- let aggregateSpec : AggregateSpec | undefined ;
73
-
74
- if ( aggregateFieldOrSpec instanceof AggregateField ) {
75
- aggregateSpec = { [ aggregateFieldOrSpec . aggregateType ] : aggregateFieldOrSpec } ;
76
- }
77
- else {
78
- aggregateSpec = aggregateFieldOrSpec ;
79
- }
80
66
81
67
return new Promise ( resolve => {
82
68
const data : any = { } ;
83
- for ( const key in aggregateSpec ) {
84
- const field = aggregateSpec [ key ] ;
69
+ for ( const key in aggregates ) {
70
+ const field = aggregates [ key ] ;
85
71
switch ( field . aggregateType ) {
86
72
case "count" :
87
73
data [ key ] = 1 ;
@@ -98,15 +84,26 @@ export function getAggregateFromServer<T extends AggregateSpec | AggregateFieldT
98
84
} )
99
85
}
100
86
101
- export function sum ( field : string | FieldPath ) : AggregateField < number , 'sum' > {
87
+ /**
88
+ * TODO
89
+ * @param field
90
+ */
91
+ export function sum ( field : string | FieldPath ) : AggregateField < number > {
102
92
return new AggregateField ( 'sum' , field ) ;
103
93
}
104
94
105
- export function average ( field : string | FieldPath ) : AggregateField < number | null , 'average' > {
95
+ /**
96
+ * TODO
97
+ * @param field
98
+ */
99
+ export function average ( field : string | FieldPath ) : AggregateField < number | null > {
106
100
return new AggregateField ( 'average' , field ) ;
107
101
}
108
102
109
- export function count ( ) : AggregateField < number , 'count' > {
103
+ /**
104
+ * TODO
105
+ */
106
+ export function count ( ) : AggregateField < number > {
110
107
return new AggregateField ( 'count' ) ;
111
108
}
112
109
@@ -117,8 +114,8 @@ export function count(): AggregateField<number, 'count'> {
117
114
* @param right
118
115
*/
119
116
export function aggregateFieldEqual (
120
- left : AggregateField < unknown , AggregateType > ,
121
- right : AggregateField < unknown , AggregateType >
117
+ left : AggregateField < unknown > ,
118
+ right : AggregateField < unknown >
122
119
) : boolean {
123
120
return left instanceof AggregateField &&
124
121
right instanceof AggregateField &&
0 commit comments