Website : rimsha.abasa.com
backdoor
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
canvas
/
node_modules
/
streamfilter
/
Filename :
README.md
back
Copy
[//]: # ( ) [//]: # (This file is automatically generated by a `metapak`) [//]: # (module. Do not change it except between the) [//]: # (`content:start/end` flags, your changes would) [//]: # (be overridden.) [//]: # ( ) # streamfilter > Filtering streams. [](https://travis-ci.org/nfroidure/streamfilter) [](https://coveralls.io/r/nfroidure/streamfilter?branch=master) [](https://npmjs.org/package/streamfilter) [](https://david-dm.org/nfroidure/streamfilter) [](https://david-dm.org/nfroidure/streamfilter#info=devDependencies) [](https://dependencyci.com/github/nfroidure/streamfilter) [](http://packagequality.com/#?package=streamfilter) [](https://codeclimate.com/github/nfroidure/streamfilter) [//]: # (::contents:start) `streamfilter` is a function based filter for streams inspired per gulp-filter but no limited to Gulp nor to objectMode streams. ## Installation First, install `streamfilter` in your project: ```sh npm install --save streamfilter ``` ## Getting started There are 3 common usages: ### Simple filter ```js import FilterStream from 'streamfilter'; const filter = new FilterStream((chunk, encoding, cb) => { const mustBeFiltered = chunk.length() > 128; if(mustBeFiltered) { cb(true); return; } cb(false); }); // Print to stdout a filtered stdin process.stdin .pipe(filter) .pipe(process.stdout); ``` ### Filter and restore ```js import FilterStream from 'streamfilter'; const filter = new FilterStream((chunk, encoding, cb) => { const mustBeFiltered = chunk.length() > 128; if(mustBeFiltered) { cb(true); return; } cb(false); }, { restore: true }); // Print accepted chunks in stdout filter.pipe(process.stdout); // Print filtered one to stderr filter.restore.pipe(process.stderr); ``` ### Filter and restore as a passthrough stream Let's reach total hype! ```js import FilterStream from 'streamfilter'; import { Transform } from 'stream'; // Filter values const filter = new FilterStream((chunk, encoding, cb) => { const mustBeFiltered = chunk.length() > 128; if(mustBeFiltered) { cb(true); return; } cb(false); }, { restore: true, passthrough: true }); // Uppercase strings const mySuperTransformStream = new Transform({ transform: (chunk, encoding, cb) => cb( null, Buffer.from( chunk.toString(encoding).toUpperCase(), encoding, ), ), }); // Pipe stdin process.stdin.pipe(filter) // Edit kept chunks .pipe(mySuperTransformStream) // Restore filtered chunks .pipe(filter.restore) // and output! .pipe(process.stdout) ``` Note that in this case, this is *your* responsibility to end the restore stream by piping in another stream or ending him manually. [//]: # (::contents:end) # API <a name="StreamFilter"></a> ## StreamFilter(filterCallback, options) ⇒ <code>Stream</code> Filter piped in streams according to the given `filterCallback` that takes the following arguments: `chunk` the actual chunk, `encoding` the chunk encoding, filterResultCallback` the function to call as the result of the filtering process with `true` in argument to filter her or `false` otherwise. Options are passed in as is in the various stream instances spawned by this module. So, to use the objectMode, simply pass in the `options.objectMode` value set to `true`. **Kind**: global function **Returns**: <code>Stream</code> - The filtering stream | Param | Type | Description | | --- | --- | --- | | filterCallback | <code>function</code> | Callback applying the filters | | options | <code>Object</code> | Filtering options | | options.passthrough | <code>boolean</code> | Set to `true`, this option change the restore stream nature from a readable stream to a passthrough one, allowing you to reuse the filtered chunks in an existing pipeline. | | options.restore | <code>boolean</code> | Set to `true`, this option create a readable stream allowing you to use the filtered chunks elsewhere. The restore stream is exposed in the `FilterStream` instance as a `restore` named property. | # Authors - [Nicolas Froidure](http://insertafter.com/en/index.html) # License [MIT](https://github.com/nfroidure/streamfilter/blob/master/LICENSE)