1. minipass-pipeline
create a pipeline of streams using Minipass
minipass-pipeline
Package: minipass-pipeline
Last modified: Mon, 09 May 2022 10:23:48 GMT
Version: 1.2.4
License: ISC
Downloads: 54,780,336

Install

npm install minipass-pipeline
yarn add minipass-pipeline

minipass-pipeline

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.

USAGE

 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.

Dependencies

Dependencies

RELATED POST

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin