Socket
Socket
Sign inDemoInstall

throughout

Package Overview
Dependencies
2
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    throughout

apply a through stream to the output side of another through stream


Version published
Weekly downloads
833
decreased by-7.03%
Maintainers
1
Install size
25.2 kB
Created
Weekly downloads
 

Readme

Source

throughout

Apply a through stream to the output side of another through stream, preserving the first stream as input in the returned stream.

build status

browser support

example

var through = require('through');
var throughout = require('throughput');

var doubler = through(function (buf) {
    var dbuf = new Buffer(buf.length * 2);
    for (var i = 0; i < dbuf.length; i++) {
        dbuf[i] = buf[Math.floor(i/2)];
    }
    this.queue(dbuf);
});

var counter = through(
    function (buf) {
        this._count = (this._count || 0) + buf.length;
    },
    function () {
        this.queue(this._count + '\n');
        this.queue(null);
    }
);

process.stdin
    .pipe(throughout(doubler, counter))
    .pipe(process.stdout)
;

rationale

If you want to transform just the output side of a through stream, this is actually somewhat difficult and it's not immediately obvious why something like:

var duplexer = require('duplexer');

function filterOutput (a, b) {
    a.pipe(b);
    return duplexer(a, b);
}

shouldn't just work. The worst part is that it does work, until you try to pipe the results to a slow endpoint that will throttle with pause and resume.

The problem is that both duplexer and .pipe() will handle pause and resume in a mutually exclusive way that will cause the stream to hang indefinitely if a slow downstream consumer ever triggers a pause.

If you try to use event-stream's .pipeline() function you will get the same problem.

methods

var throughout = require('throughout');

var c = throughout(a, b)

Pipe the output of a through stream a into the input of a through stream b, returning a new stream c that writes its input to a and forwards the output from b.

install

With npm do:

npm install throughout

license

MIT

Keywords

FAQs

Last updated on 20 May 2013

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc