kibana-123
Version:
Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic
29 lines (23 loc) • 790 B
JavaScript
import { endsWith, escapeRegExp, memoize } from 'lodash';
export default function fieldWildcard(config) {
const metaFields = config.get('metaFields');
const makeRegEx = memoize(function makeRegEx(glob) {
return new RegExp('^' + glob.split('*').map(escapeRegExp).join('.*') + '$');
});
function fieldWildcardMatcher(globs) {
return function matcher(val) {
// do not test metaFields or keyword
if (metaFields.indexOf(val) !== -1) {
return false;
}
return globs.some(p => makeRegEx(p).test(val));
};
}
function fieldWildcardFilter(globs) {
const matcher = fieldWildcardMatcher(globs);
return function filter(val) {
return !matcher(val);
};
}
return { makeRegEx, fieldWildcardMatcher, fieldWildcardFilter };
};