Big update!Introducing GitHub Bot Commands. Learn more
Log inDemoInstall


Package Overview
File Explorer

Advanced tools


create a pipeline of streams using Minipass


Version published
Weekly downloads
increased by7.94%

Weekly downloads




Create a pipeline of streams using Minipass.

Calls .pipe() on all the streams in the list. Returns a stream where writes got to the first pipe in the chain, and reads are from the last.

Errors are proxied along the chain and emitted on the Pipeline stream.


const Pipeline = require('minipass-pipeline') // the list of streams to pipeline together, // a bit like `input | transform | output` in bash const p = new Pipeline(input, transform, output) p.write('foo') // writes to input p.on('data', chunk => doSomething()) // reads from output stream // less contrived example (but still pretty contrived)... const decode = new bunzipDecoder() const unpack = tar.extract({ cwd: 'target-dir' }) const tbz = new Pipeline(decode, unpack) fs.createReadStream('archive.tbz').pipe(tbz) // specify any minipass options if you like, as the first argument // it'll only try to pipeline event emitters with a .pipe() method const p = new Pipeline({ objectMode: true }, input, transform, output) // If you don't know the things to pipe in right away, that's fine. // use p.push(stream) to add to the end, or p.unshift(stream) to the front const databaseDecoderStreamDoohickey = (connectionInfo) => { const p = new Pipeline() logIntoDatabase(connectionInfo).then(connection => { initializeDecoderRing(connectionInfo).then(decoderRing => { p.push(connection, decoderRing) getUpstreamSource(upstream => { p.unshift(upstream) }) }) }) // return to caller right away // emitted data will be upstream -> connection -> decoderRing pipeline return p }

Pipeline is a minipass stream, so it's as synchronous as the streams it wraps. It will buffer data until there is a reader, but no longer, so make sure to attach your listeners before you pipe it somewhere else.

new Pipeline(opts = {}, ...streams)

Create a new Pipeline with the specified Minipass options and any streams provided.

pipeline.push(stream, ...)

Attach one or more streams to the pipeline at the end (read) side of the pipe chain.

pipeline.unshift(stream, ...)

Attach one or more streams to the pipeline at the start (write) side of the pipe chain.


What is minipass-pipeline?

create a pipeline of streams using Minipass

Is minipass-pipeline popular?

The npm package minipass-pipeline receives a total of 12,318,733 weekly downloads. As such, minipass-pipeline popularity was classified as popular.

Is minipass-pipeline well maintained?

We found that minipass-pipeline demonstrated a not healthy version release cadence and project activity because the last version was released a year ago.It has 1 open source maintainer collaborating on the project.

Last updated on 28 Jul 2020

Did you know?

Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install Socket
Socket[email protected]


Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc