2.0.2 • Published 7 years ago
sandwich-stream v2.0.2
SandwichStream
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 --savenote: 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 bottomConfiguration Options
- headoption takes a string/buffer and pushes the string before all other content
- footoption takes a string/buffer and pushes the string after all other data has been pushed
- separatoroption 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.