wishthis/node_modules/first-chunk-stream/readme.md

65 lines
1.6 KiB
Markdown
Raw Normal View History

2022-01-21 08:28:41 +00:00
# first-chunk-stream [![Build Status](https://travis-ci.org/sindresorhus/first-chunk-stream.svg?branch=master)](https://travis-ci.org/sindresorhus/first-chunk-stream)
> Buffer and transform the n first bytes of a stream
## Install
```
$ npm install --save first-chunk-stream
```
## Usage
```js
const fs = require('fs');
const concatStream = require('concat-stream');
const firstChunkStream = require('first-chunk-stream');
// unicorn.txt => unicorn rainbow
fs.createReadStream('unicorn.txt')
.pipe(firstChunkStream({chunkLength: 7}, function (chunk, enc, cb) {
this.push(chunk.toUpperCase());
cb();
}))
.pipe(concatStream(function (data) {
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)
Returns a `FirstChunkStream` instance.
#### options
The options object is passed to the [`Duplex` stream](https://nodejs.org/api/stream.html#stream_class_stream_duplex) constructor allowing you to customize your stream behavior. In addition you can specify the following option:
##### chunkLength
Type: `number`
How many bytes you want to buffer.
#### transform(chunk, encoding, callback)
Type: `function`
The function that gets the required `options.chunkLength` bytes.
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 `òptions.chunkLength` value. You should check for this yourself if you strictly depend on the length.
## License
MIT © [Sindre Sorhus](http://sindresorhus.com)