README
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)); // ["hello ", "world!"]
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, // Won't have any effect.
objectMode: true
});
stream.on("data", chunk => {
console.log(chunk.toString()); // a very long long string...
});
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
(optionalNumber
): The maximum number of bytes for each chunk, default to16384
(16kb).objectMode
(optionalBoolean
): When it sets totrue
, the stringdata
will be emitted in one shot ignoring thehighWaterMark
option. Default tofalse
.
Returns
It returns Readable
Stream instance.