sandwich-stream
v2.0.2
Published
A readable stream that concatenates multiple streams with optional head, tail & join buffers
Downloads
273,916
Maintainers
Readme
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 --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 contentfoot
option takes a string/buffer and pushes the string after all other data has been pushedseparator
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.