UNPKG

reductio

Version:

Reductio: Crossfilter groupings

30 lines (28 loc) 801 B
var filter = { // The big idea here is that you give us a filter function to run on values, // a 'prior' reducer to run (just like the rest of the standard reducers), // and a reference to the last reducer (called 'skip' below) defined before // the most recent chain of reducers. This supports individual filters for // each .value('...') chain that you add to your reducer. add: function (filter, prior, skip) { return function (p, v, nf) { if (filter(v, nf)) { if (prior) prior(p, v, nf); } else { if (skip) skip(p, v, nf); } return p; }; }, remove: function (filter, prior, skip) { return function (p, v, nf) { if (filter(v, nf)) { if (prior) prior(p, v, nf); } else { if (skip) skip(p, v, nf); } return p; }; } }; export default filter;