thru

0.0.2 • Public • Published

thru

minimalist transform stream implementation

why

sugar for stream.Transform

how

var thru = require('thru');
 
var input = thru();
 
var inflate = thru(function(obj, cb) {
  if (obj === 'a') {
    this.push('a');
    this.push('b');
    cb();
  } else {
    cb(null, obj);
  }
});
 
var modify = thru(function(obj, cb) {
  if (obj === 'd') obj = 'c';
  cb(null, obj);
});
 
var deflate = thru(function(obj, cb) {
  if (obj === 'e') cb();
  else cb(null, obj);
});
 
var newlines = thru(function(obj, cb) {
  cb(null, obj + '\n');
});
 
input
  .pipe(inflate)
  .pipe(modify)
  .pipe(deflate)
  .pipe(newlines)
  .pipe(process.stdout);
 
newlines.on('end', function() {
  console.log('done!');
});
 
input.write('a'); // a
                  // b
input.write('d'); // c
input.write('e');
input.end();      // done!

inspiration

through
through2

license

WTFPL

Readme

Keywords

none

Package Sidebar

Install

npm i thru

Weekly Downloads

10

Version

0.0.2

License

none

Last publish

Collaborators

  • jessetane