Skip to content

Commit 2546d1d

Browse files
committed
[RFR] Add support for array in filters
1 parent 80ca4d6 commit 2546d1d

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

src/resolver/Query/applyFilters.js

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,25 @@ export default (entityData, filter = {}) => {
3030
return;
3131
}
3232

33-
items = items.filter(
34-
d =>
35-
filter[key] instanceof Date
36-
? +d[key] == +filter[key]
37-
: d[key] == filter[key]
38-
);
33+
if (Array.isArray(filter[key])) {
34+
items = items.filter(item => {
35+
if (Array.isArray(item[key])) {
36+
// array filter and array item value: where all items in values
37+
return filter[key].every(v =>
38+
item[key].some(itemValue => itemValue == v)
39+
);
40+
}
41+
// where item in values
42+
return filter[key].filter(v => v == item[key]).length > 0;
43+
});
44+
} else {
45+
items = items.filter(
46+
d =>
47+
filter[key] instanceof Date
48+
? +d[key] == +filter[key]
49+
: d[key] == filter[key]
50+
);
51+
}
3952
});
4053

4154
if (filter.q) {

0 commit comments

Comments
 (0)