String to Stream
Convert string into a readable stream.
Installation
$ npm install str-to-stream
Usage
Pipe a string into a writable stream:
const strToStream = require("str-to-stream");
const stream = strToStream("hello world!");
stream.pipe(process.stdout);
Listen to data
event:
const strToStream = require("str-to-stream");
const stream = strToStream("hello world!");
stream.on("data", chunk => console.log(`Data received: ${chunk.toString()}`));
stream.on("end", () => console.log("All data have been received."));
Recipes
Set the Data Bytes Limit for Each Chunk
By default, each data chunk is limited to 16,384 bytes. You can override this by passing the highWaterMark
option:
const strToStream = require("str-to-stream");
const stream = strToStream("hello world!", {
highWaterMark: 6
});
const chunks = [];
stream.on("data", chunk => chunks.push(chunk.toString()));
stream.on("end", () => console.log(chunks));
Emit Data in One Shot
To emit all string data in one shot, set the objectMode
option to true
. The highWaterMark
option value won't have any effect.
const strToStream = require("str-to-stream");
const stream = strToStream("a very long long string...", {
highWaterMark: 6,
objectMode: true
});
stream.on("data", chunk => {
console.log(chunk.toString());
});
Write to a File
const fs = require("fs");
const strToStream = require("str-to-stream");
const file = fs.createWriteStream("./hello.txt");
const stream = strToStream("hello world!");
stream.pipe(file);
API
strToStream(data, [{ highWaterMark, objectMode }])
Parameters
data
(String
): The string to convert to a readable stream.highWaterMark
(optional Number
): The maximum number of bytes for each chunk, default to 16384
(16kb).objectMode
(optional Boolean
): When it sets to true
, the string data
will be emitted in one shot ignoring the highWaterMark
option. Default to false
.
Returns
It returns Readable
Stream instance.
License
MIT © Risan Bagja Pradana