tv
Version:
Interactive debug console plugin for hapi
44 lines (25 loc) • 821 B
JavaScript
;
// Load modules
const _ = require('lodash');
const SearchCriterion = require('./searchCriterion');
// Declare internals
const internals = {};
exports = module.exports = internals.SearchCriteria = function (queryString) {
const fragments = queryString.split(' ');
this.criteria = _.map(fragments, (fragment) => {
return SearchCriterion.create(fragment);
});
};
internals.SearchCriteria.create = function (queryString) {
return new internals.SearchCriteria(queryString);
};
internals.SearchCriteria.prototype.matches = function (request) {
return _.chain(this.criteria)
.reject((criterion) => {
return criterion.ignored;
})
.every((criterion) => {
return criterion.matches(request);
})
.value();
};