stream-chunker

1.2.8 • Public • Published

stream-chunker

A transform stream which chunks incoming data into chunkSize byte chunks.

NPM

Build Status Coverage Status Dependency Status devDependency Status

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 is false.
    • align: boolean - Optional. Pad incomplete chunk data on stream end. Should be used in combination with flush. Default is false.
    • encoding: string - Optional. Encoding of String chunks. Must be a valid Buffer encoding, such as utf8 or ascii.

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

Package Sidebar

Install

npm i stream-chunker

Weekly Downloads

2,530

Version

1.2.8

License

MIT

Last publish

Collaborators

  • klyngbaek