Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    duplexer2public

    duplexer2 Build Status Coverage Status

    Like duplexer but using Streams3

    var stream = require("stream");
     
    var duplexer2 = require("duplexer2");
     
    var writable = new stream.Writable({objectMode: true}),
        readable = new stream.Readable({objectMode: true});
     
    writable._write = function _write(input, encoding, done) {
      if (readable.push(input)) {
        return done();
      } else {
        readable.once("drain", done);
      }
    };
     
    readable._read = function _read(n) {
      // no-op
    };
     
    // simulate the readable thing closing after a bit
    writable.once("finish", function() {
      setTimeout(function() {
        readable.push(null);
      }, 500);
    });
     
    var duplex = duplexer2(writable, readable);
     
    duplex.on("data", function(e) {
      console.log("got data", JSON.stringify(e));
    });
     
    duplex.on("finish", function() {
      console.log("got finish event");
    });
     
    duplex.on("end", function() {
      console.log("got end event");
    });
     
    duplex.write("oh, hi there", function() {
      console.log("finished writing");
    });
     
    duplex.end(function() {
      console.log("finished ending");
    });
    got data "oh, hi there"
    finished writing
    got finish event
    finished ending
    got end event
    

    Overview

    This is a reimplementation of duplexer using the Streams3 API which is standard in Node as of v4. Everything largely works the same.

    Installation

    Available via npm:

    $ npm i duplexer2
    

    API

    duplexer2

    Creates a new DuplexWrapper object, which is the actual class that implements most of the fun stuff. All that fun stuff is hidden. DON'T LOOK.

    duplexer2([options], writable, readable)
    const duplex = duplexer2(new stream.Writable(), new stream.Readable());

    Arguments

    • options - an object specifying the regular stream.Duplex options, as well as the properties described below.
    • writable - a writable stream
    • readable - a readable stream

    Options

    • bubbleErrors - a boolean value that specifies whether to bubble errors from the underlying readable/writable streams. Default is true.

    License

    3-clause BSD. A copy is included with the source.

    Contact

    install

    npm i duplexer2

    Downloadsweekly downloads

    2,498,810

    version

    0.1.4

    license

    BSD-3-Clause

    repository

    githubgithub

    last publish

    collaborators

    • avatar
    • avatar
    • avatar