function searchFilter(query) {
const filters = normalize(query + "")
.split(/\s+/g)
.filter(t => t)
.map(termFilter);
return d => {
if (d == null) return false;
if (typeof d === "object") {
out: for (const filter of filters) {
for (const value of valuesof(d)) {
if (filter.test(normalize(value))) {
continue out;
}
}
return false;
}
} else {
for (const filter of filters) {
if (!filter.test(normalize(d))) {
return false;
}
}
}
return true;
};
}