sandwich-stream

v2.0.2
A readable stream that concatenates multiple streams with optional head, tail & join buffers
stream sandwich readable typescript concatenation

SandwichStream

npm npm Travis CI codecov Codacy Badge Dependencies Known Vulnerabilities Maintainability

About

While I'm not overjoyed about how performant the internals will operate, I wanted a readable stream that was ACTUALLY A READABLE STREAM. Not a streams1 stream masquerading as streams2. As soon as somebody writes a better concat stream as a readable stream with a nice simple API, this baby is going to develop some serious abandonment issues.

Installation

npm install sandwich-stream --save

note: this code was made using it TypeScript, and its typings are linked in package.json, so there's no need of installing @types/sandwich-stream or anything related.

Usage

import { SandwichStream } from 'sandwich-stream';
// OR EVEN:
// const SandwichStream = require('sandwich-stream');

const sandwich = SandwichStream({
    head: 'Thing at the top\n',
    tail: '\nThing at the bottom',
    separator: '\n ---- \n'
});

sandwich.add(aStreamIPreparedEarlier)
        .add(anotherStreamIPreparedEarlier)
        .add(aFurtherStreamIPreparedEarlier)
        .pipe(process.stdout);

// The thing at the top
//  ---- 
// Stream1
//  ---- 
// Stream2
//  ---- 
// Stream3
// The thing at the bottom

Configuration Options

  • head option takes a string/buffer and pushes the string before all other content
  • foot option takes a string/buffer and pushes the string after all other data has been pushed
  • separator option pushes a string/buffer between each stream
  • Readable Options can also be passed through.

API

Too add a stream use the .add method: sandwich.add(streamVariable);

More

Wanna known more about Node Streams? Read this.

npm i sandwich-stream

Metadata

Downloads

Maintainers