What is get-stream?
The get-stream npm package is a utility that allows you to get a stream as a string, buffer, or array. It is useful for converting streams into a more usable form in Node.js applications.
What are get-stream's main functionalities?
Get stream as a string
This feature allows you to convert a readable stream into a string. It is useful when you want to process the contents of a file or any readable stream as a string.
const getStream = require('get-stream');
const fs = require('fs');
(async () => {
const stream = fs.createReadStream('file.txt');
const data = await getStream(stream);
console.log(data);
})();
Get stream as a buffer
This feature allows you to convert a readable stream into a buffer. It is useful when you need to handle binary data from streams.
const getStream = require('get-stream');
const fs = require('fs');
(async () => {
const stream = fs.createReadStream('file.txt');
const data = await getStream.buffer(stream);
console.log(data);
})();
Get stream as an array
This feature allows you to convert a readable stream into an array of values. It is useful when you want to process data from a stream in chunks or lines.
const getStream = require('get-stream');
const fs = require('fs');
(async () => {
const stream = fs.createReadStream('file.txt');
const data = await getStream.array(stream);
console.log(data);
})();
Other packages similar to get-stream
concat-stream
concat-stream is a writable stream that concatenates data and calls a callback with the result. It is similar to get-stream but uses a callback pattern instead of promises.
bl
Buffer List (bl) is a storage object for collections of Node Buffers, which can be easily read and written. It is similar to get-stream's buffer functionality but offers more features for manipulating the buffer list.
stream-to-promise
stream-to-promise converts a Node.js stream into a promise, which is resolved when the 'finish' event is emitted. It is similar to get-stream but focuses on the 'finish' event rather than collecting the stream's data.
get-stream ![Build Status](https://travis-ci.org/sindresorhus/get-stream.svg?branch=master)
Get a stream as a string, buffer, or array
Install
$ npm install --save get-stream
Usage
const fs = require('fs');
const getStream = require('get-stream');
const stream = fs.createReadStream('unicorn.txt');
getStream(stream).then(str => {
console.log(str);
});
API
The methods returns a promise that is resolved when the end
event fires on the stream, indicating that there is no more data to be read. The stream is switched to flowing mode.
getStream(stream, [options])
Get the stream
as a string.
options
encoding
Type: string
Default: utf8
Encoding of the incoming stream.
getStream.buffer(stream)
Get the stream
as a buffer.
getStream.array(stream)
Get the stream
as an array of values.
Especially useful for object mode streams.
FAQ
How is this different from concat-stream
?
This module accepts a stream instead of being one and returns a promise instead of using a callback. The API is simpler and it only supports returning a string, buffer, or array. It doesn't have a fragile type inference. You explicitly choose what you want. And it doesn't depend on the huge readable-stream
package.
Related
License
MIT © Sindre Sorhus