sandwich-stream

A readable stream that concatenates multiple streams with optional head, tail & join buffers

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
sandwich-stream
402.0.24 years ago9 years agoMinified + gzip package size for sandwich-stream in KB

Readme

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.