Minimal filter chain for Node.js and the browser
npm install min-filter[![Build Status]](https://travis-ci.org/mantoni/min-filter.js)
[![SemVer]](http://semver.org)
[![License]](https://github.com/mantoni/min-filter.js/blob/master/LICENSE)
Minimal filter chain for Node.js and the browser
```
npm install min-filter
The filter operates on a [min-iterator][] implementation. This example uses a
[live-list][] to demonstrate the usage:
`js
var filter = require('min-filter');
var List = require('live-list').List;
var l = new List();
l.push({
fn: function (next) {
// Do stuff before the next thing ...
next();
}
});
l.push({
fn: function (next, callback) {
next(function () {
// Do stuff on the way back ...
callback();
});
},
scope: this
});
var it = l.iterator();
filter(it, function (err, value) {
// Done.
});
`
filter(iterator[, scope][[, then], callback])
- iterator: [min-iterator][] that returns objects with filter functionsscope
- : The object to use as this in each filter function, if notthen
specified otherwise
- : A function that is invoked after the last filter called next.next
Receives an optional callback argument. If a callback is given, it triggers
execution of the functions passed to by the filters.callback
- : A function that is invoked after all processing of all filters,
the done function and all callbacks has finished. Receives an error object as
the first argument and any additional arguments passed back by the callbacks.
Data structure of objects returns by iterator:
- fn: The filter functionscope
- : The scope to use when invoking the filter function. This overridesfilter
the scope passed to .
Valid argument combinations:
- filter(it, callback): Invokes filters, then callbackfilter(it, then, callback)
- : Invokes filters, calls then after lastnext
filter called , then invokes callbackfilter(it, scope, callback)
- : Invokes filters with given scope, then invokescallback
filter(it, scope, then, callback)
- : Invokes filters with given scope, callsthen
after last filter called next, then invokes callback`
To use this module in a browser, download the npm package and then use
Browserify to create a standalone version.
MIT
[Build Status]: http://img.shields.io/travis/mantoni/min-filter.js.svg
[SemVer]: http://img.shields.io/:semver-%E2%9C%93-brightgreen.svg
[License]: http://img.shields.io/npm/l/min-filter.svg
[min-iterator]: https://github.com/mantoni/min-iterator.js
[live-list]: https://github.com/mantoni/live-list.js