@@ -839,7 +839,7 @@ export function toQueryTarget(
839
839
result . structuredQuery ! . from = [ { collectionId : path . lastSegment ( ) } ] ;
840
840
}
841
841
842
- const where = encodeFilters ( target . filters ) ;
842
+ const where = toFilters ( target . filters ) ;
843
843
if ( where ) {
844
844
result . structuredQuery ! . where = where ;
845
845
}
@@ -885,7 +885,7 @@ export function convertQueryTargetToQuery(target: ProtoQueryTarget): Query {
885
885
886
886
let filterBy : Filter [ ] = [ ] ;
887
887
if ( query . where ) {
888
- filterBy = decodeFilters ( query . where ) ;
888
+ filterBy = fromFilters ( query . where ) ;
889
889
}
890
890
891
891
let orderBy : OrderBy [ ] = [ ] ;
@@ -984,16 +984,16 @@ export function toTarget(
984
984
return result ;
985
985
}
986
986
987
- function encodeFilters ( filters : Filter [ ] ) : ProtoFilter | undefined {
987
+ function toFilters ( filters : Filter [ ] ) : ProtoFilter | undefined {
988
988
if ( filters . length === 0 ) {
989
989
return ;
990
990
}
991
991
992
- return encodeFilter ( CompositeFilter . create ( filters , CompositeOperator . AND ) ) ;
992
+ return toFilter ( CompositeFilter . create ( filters , CompositeOperator . AND ) ) ;
993
993
}
994
994
995
- function decodeFilters ( filter : ProtoFilter ) : Filter [ ] {
996
- const result = decodeFilter ( filter ) ;
995
+ function fromFilters ( filter : ProtoFilter ) : Filter [ ] {
996
+ const result = fromFilter ( filter ) ;
997
997
998
998
// Instead of a singletonList containing AND(F1, F2, ...), we can return a list containing F1,
999
999
// F2, ...
@@ -1003,19 +1003,20 @@ function decodeFilters(filter: ProtoFilter): Filter[] {
1003
1003
result instanceof CompositeFilter &&
1004
1004
compositeFilterIsFlatConjunction ( result )
1005
1005
) {
1006
+ // Copy the readonly array into a mutable array
1006
1007
return Object . assign ( [ ] , result . getFilters ( ) ) ;
1007
1008
}
1008
1009
1009
1010
return [ result ] ;
1010
1011
}
1011
1012
1012
- function decodeFilter ( filter : ProtoFilter ) : Filter {
1013
+ function fromFilter ( filter : ProtoFilter ) : Filter {
1013
1014
if ( filter . unaryFilter !== undefined ) {
1014
- return decodeUnaryFilter ( filter ) ;
1015
+ return fromUnaryFilter ( filter ) ;
1015
1016
} else if ( filter . fieldFilter !== undefined ) {
1016
- return decodeFieldFilter ( filter ) ;
1017
+ return fromFieldFilter ( filter ) ;
1017
1018
} else if ( filter . compositeFilter !== undefined ) {
1018
- return decodeCompositeFilter ( filter ) ;
1019
+ return fromCompositeFilter ( filter ) ;
1019
1020
} else {
1020
1021
return fail ( 'Unknown filter: ' + JSON . stringify ( filter ) ) ;
1021
1022
}
@@ -1124,9 +1125,8 @@ export function fromCompositeOperatorName(
1124
1125
switch ( op ) {
1125
1126
case 'AND' :
1126
1127
return CompositeOperator . AND ;
1127
- // TODO(orquery) update when OR operatore is supported in ProtoCompositeFilterOp
1128
- // case 'OPERATOR_UNSPECIFIED':
1129
- // return fail('Unspecified operator');
1128
+ // TODO(orquery) update when OR operator is supported in ProtoCompositeFilterOp
1129
+ // OPERATOR_UNSPECIFIED should fail and OR should return OR
1130
1130
case 'OPERATOR_UNSPECIFIED' :
1131
1131
return CompositeOperator . OR ;
1132
1132
default :
@@ -1160,18 +1160,18 @@ export function fromPropertyOrder(orderBy: ProtoOrder): OrderBy {
1160
1160
}
1161
1161
1162
1162
// visible for testing
1163
- export function encodeFilter ( filter : Filter ) : ProtoFilter {
1163
+ export function toFilter ( filter : Filter ) : ProtoFilter {
1164
1164
if ( filter instanceof FieldFilter ) {
1165
- return encodeUnaryOrFieldFilter ( filter ) ;
1165
+ return toUnaryOrFieldFilter ( filter ) ;
1166
1166
} else if ( filter instanceof CompositeFilter ) {
1167
- return encodeCompositeFilter ( filter ) ;
1167
+ return toCompositeFilter ( filter ) ;
1168
1168
} else {
1169
1169
return fail ( 'Unrecognized filter type ' + JSON . stringify ( filter ) ) ;
1170
1170
}
1171
1171
}
1172
1172
1173
- export function encodeCompositeFilter ( filter : CompositeFilter ) : ProtoFilter {
1174
- const protos = filter . getFilters ( ) . map ( filter => encodeFilter ( filter ) ) ;
1173
+ export function toCompositeFilter ( filter : CompositeFilter ) : ProtoFilter {
1174
+ const protos = filter . getFilters ( ) . map ( filter => toFilter ( filter ) ) ;
1175
1175
1176
1176
if ( protos . length === 1 ) {
1177
1177
return protos [ 0 ] ;
@@ -1185,7 +1185,7 @@ export function encodeCompositeFilter(filter: CompositeFilter): ProtoFilter {
1185
1185
} ;
1186
1186
}
1187
1187
1188
- export function encodeUnaryOrFieldFilter ( filter : FieldFilter ) : ProtoFilter {
1188
+ export function toUnaryOrFieldFilter ( filter : FieldFilter ) : ProtoFilter {
1189
1189
if ( filter . op === Operator . EQUAL ) {
1190
1190
if ( isNanValue ( filter . value ) ) {
1191
1191
return {
@@ -1228,7 +1228,7 @@ export function encodeUnaryOrFieldFilter(filter: FieldFilter): ProtoFilter {
1228
1228
} ;
1229
1229
}
1230
1230
1231
- export function decodeUnaryFilter ( filter : ProtoFilter ) : Filter {
1231
+ export function fromUnaryFilter ( filter : ProtoFilter ) : Filter {
1232
1232
switch ( filter . unaryFilter ! . op ! ) {
1233
1233
case 'IS_NAN' :
1234
1234
const nanField = fromFieldPathReference ( filter . unaryFilter ! . field ! ) ;
@@ -1257,17 +1257,17 @@ export function decodeUnaryFilter(filter: ProtoFilter): Filter {
1257
1257
}
1258
1258
}
1259
1259
1260
- export function decodeFieldFilter ( filter : ProtoFilter ) : FieldFilter {
1260
+ export function fromFieldFilter ( filter : ProtoFilter ) : FieldFilter {
1261
1261
return FieldFilter . create (
1262
1262
fromFieldPathReference ( filter . fieldFilter ! . field ! ) ,
1263
1263
fromOperatorName ( filter . fieldFilter ! . op ! ) ,
1264
1264
filter . fieldFilter ! . value !
1265
1265
) ;
1266
1266
}
1267
1267
1268
- export function decodeCompositeFilter ( filter : ProtoFilter ) : CompositeFilter {
1268
+ export function fromCompositeFilter ( filter : ProtoFilter ) : CompositeFilter {
1269
1269
return CompositeFilter . create (
1270
- filter . compositeFilter ! . filters ! . map ( filter => decodeFilter ( filter ) ) ,
1270
+ filter . compositeFilter ! . filters ! . map ( filter => fromFilter ( filter ) ) ,
1271
1271
fromCompositeOperatorName ( filter . compositeFilter ! . op ! )
1272
1272
) ;
1273
1273
}
0 commit comments