2.5 KiB
2.5 KiB
stream-chunker
A transform stream which chunks incoming data into chunkSize
byte chunks.
API
var chunker = require('stream-chunker')(chunkSize, [opts])
Returns a new chunker. Chunker is a duplex (transform) stream. You can write data into the
chunker, and regardless of the incoming data, the readable side will emit data
in chunkSize
byte chunks. This modules has no notion of objectMode
, everything
written to this stream must be a string
or a buffer
.
chunkSize
:integer
- Size in bytes of the desired chunks.opts
flush
:boolean
- Optional. Flush incomplete chunk data on stream end. Default isfalse
.align
:boolean
- Optional. Pad incomplete chunk data on stream end. Should be used in combination withflush
. Default isfalse
.encoding
:string
- Optional. Encoding of String chunks. Must be a valid Buffer encoding, such asutf8
orascii
.
Simple Example
var fs = require('fs');
var chunker = require('stream-chunker');
fs.createReadStream('/someFile')
.pipe(chunker(16))
.pipe(somethingThatExpects16ByteChunks());
Full Working Example
// Create sample input stream with 10 byte chunks
var Lorem = require('loremipstream');
var sampleStream = new Lorem({
size: 100,
dataSize: 10,
dataInteval: 100
});
// Create stream chunker with 16 byte chunks
var Chunker = require('stream-chunker');
var opts = {
flush: true,
encoding: 'utf8'
};
var chunker = Chunker(16, opts);
// make sure to add any data event listeners to chunker stream
// before you write any data to it
chunker.on('data', function(data) {
// do something with a chunk of data
// notice the last chunk is the flushed data
console.log('Chunk: ' + data);
});
sampleStream.pipe(chunker); // write some data to chunker to get chunked
License
MIT