first-chunk-stream alternatives and similar modules
Based on the "Streams" category.
Alternatively, view first-chunk-stream alternatives based on common mentions on social networks and blogs.
-
concat-stream
writable stream that concatenates strings or data and calls a callback with the result -
scramjet
Public tracker for Scramjet Cloud Platform, a platform that bring data from many environments together. -
duplexify
Turn a writable and readable stream into a streams2 duplex stream with support for async initialization and streams1/streams2 input -
into-stream
Convert a string/promise/array/iterable/asynciterable/buffer/typedarray/arraybuffer/object into a stream -
binary-split
a fast newline (or any delimiter) splitter stream - like require('split') but specific for binary data -
through2-concurrent
Simple Node.JS stream (streams2) Transform that runs the transform functions concurrently (with a set max concurrency) -
graphicsmagick-stream
DISCONTINUED. Fast conversion/scaling of images using a pool of long lived GraphicsMagick processes.
CodeRabbit: AI Code Reviews for Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of first-chunk-stream or a related project?
README
first-chunk-stream
Buffer and transform the n first bytes of a stream
Install
$ npm install first-chunk-stream
Usage
const fs = require('fs');
const getStream = require('get-stream');
const FirstChunkStream = require('first-chunk-stream');
// unicorn.txt => unicorn rainbow
const stream = fs.createReadStream('unicorn.txt')
.pipe(new FirstChunkStream({chunkSize: 7}, async (chunk, encoding) => {
return chunk.toString(encoding).toUpperCase();
}));
(async () => {
const data = await getStream(stream);
if (data.length < 7) {
throw new Error('Couldn\'t get the minimum required first chunk length');
}
console.log(data);
//=> 'UNICORN rainbow'
})();
API
FirstChunkStream(options, transform)
FirstChunkStream
constructor.
transform(chunk, encoding)
Type: Function
Async function that receives the required options.chunkSize
bytes.
Expected to return an buffer-like object or string
or object of form {buffer: Buffer
, encoding: string
} to send to stream or firstChunkStream.stop
to end stream right away.
An error thrown from this function will be emitted as stream errors.
Note that the buffer can have a smaller length than the required one. In that case, it will be due to the fact that the complete stream contents has a length less than the options.chunkSize
value. You should check for this yourself if you strictly depend on the length.
new FirstChunkStream({chunkSize: 7}, async (chunk, encoding) => {
return chunk.toString(encoding).toUpperCase(); // Send string to stream
});
new FirstChunkStream({chunkSize: 7}, async (chunk, encoding) => {
return chunk; // Send buffer to stream
});
new FirstChunkStream({chunkSize: 7}, async (chunk, encoding) => {
return {
buffer: chunk,
encoding: encoding,
}; // Send buffer with encoding to stream
});
new FirstChunkStream({chunkSize: 7}, async (chunk, encoding) => {
return FirstChunkStream.stop; // End the stream early
});
new FirstChunkStream({chunkSize: 7}, async (chunk, encoding) => {
throw new Error('Unconditional error'); // Emit stream error
});
options
Type: object
The options object is passed to the Duplex
stream constructor allowing you to customize your stream behavior. In addition, you can specify the following option:
Type: number
How many bytes you want to buffer.