Skip to content

Commit d57f1ab

Browse files
committed
improvise the code
1 parent 21b2919 commit d57f1ab

File tree

3 files changed

+23
-23
lines changed

3 files changed

+23
-23
lines changed

packages/firestore/src/core/filter.ts

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,6 @@ export abstract class Filter {
5656
abstract getFlattenedFilters(): readonly FieldFilter[];
5757

5858
abstract getFilters(): Filter[];
59-
60-
abstract getInequalityFilters(): readonly FieldFilter[];
6159
}
6260

6361
export class FieldFilter extends Filter {
@@ -194,13 +192,6 @@ export class FieldFilter extends Filter {
194192
getFilters(): Filter[] {
195193
return [this];
196194
}
197-
198-
getInequalityFilters(): readonly FieldFilter[] {
199-
if (this.isInequality()) {
200-
return [this];
201-
}
202-
return [];
203-
}
204195
}
205196

206197
export class CompositeFilter extends Filter {
@@ -246,14 +237,6 @@ export class CompositeFilter extends Filter {
246237
getFilters(): Filter[] {
247238
return Object.assign([], this.filters);
248239
}
249-
250-
// Performs a depth-first search to find and return the inequality FieldFilters in the composite
251-
// filter. Returns an empty array if none of the FieldFilters has inequality filters.
252-
getInequalityFilters(): readonly FieldFilter[] {
253-
return this.getFlattenedFilters().filter((filter: FieldFilter) =>
254-
filter.isInequality()
255-
);
256-
}
257240
}
258241

259242
export function compositeFilterIsConjunction(

packages/firestore/src/core/query.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import {
2626
boundSortsAfterDocument,
2727
boundSortsBeforeDocument
2828
} from './bound';
29-
import { Filter } from './filter';
29+
import { FieldFilter, Filter } from './filter';
3030
import { Direction, OrderBy } from './order_by';
3131
import {
3232
canonifyTarget,
@@ -170,11 +170,11 @@ export function queryMatchesAllDocuments(query: Query): boolean {
170170
export function getInequalityFilterFields(query: Query): SortedSet<FieldPath> {
171171
let result = new SortedSet<FieldPath>(FieldPath.comparator);
172172
query.filters.forEach((filter: Filter) => {
173-
const inequalityFields = filter
174-
.getInequalityFilters()
175-
.map(filter => filter.field);
176-
inequalityFields.forEach((field: FieldPath) => {
177-
result = result.add(field);
173+
const subFilters = filter.getFlattenedFilters();
174+
subFilters.forEach((filter: FieldFilter) => {
175+
if (filter.isInequality()) {
176+
result = result.add(filter.field);
177+
}
178178
});
179179
});
180180
return result;

packages/firestore/test/unit/core/query.test.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -852,6 +852,23 @@ describe('Query', () => {
852852
orderBy(fieldPath('a.a')), // field name with dot
853853
orderBy(DOCUMENT_KEY_NAME)
854854
);
855+
856+
// composite filter
857+
assertImplicitOrderBy(
858+
query(
859+
'foo',
860+
filter('a', '<', 5),
861+
andFilter(
862+
orFilter(filter('b', '>=', 1), filter('c', '<=', 1)),
863+
orFilter(filter('d', '>', 1), filter('e', '==', 1))
864+
)
865+
),
866+
orderBy('a'),
867+
orderBy('b'),
868+
orderBy('c'),
869+
orderBy('d'),
870+
orderBy(DOCUMENT_KEY_NAME)
871+
);
855872
});
856873

857874
it('matchesAllDocuments() considers filters, orders and bounds', () => {

0 commit comments

Comments
 (0)