Reading String or Buffer content from a Readable stream and writing each line which ends without line break as object
$ npm install -save readline-transform
new ReadlineTransform(options)
options
<Object>
breakMatcher
is the regular expression to split content by line break forstr.split()
. (default:/\r?\n/
)ignoreEndOfBreak
is boolean. if content ends with line break, ignore last empty line. (default:true
)skipEmpty
is boolean. if line is empty string, skip it (default:false
)
const { PassThrough } = require('stream');
const ReadlineTransform = require('readline-transform');
const readStream = new PassThrough();
const transform = new ReadlineTransform({ skipEmpty: true });
const writeStream = new PassThrough({ objectMode: true });
writeStream.on('data', (line) => {
console.log(line);
}).on('finish', () => {
console.log('<<< all done >>>');
});
readStream.pipe(transform).pipe(writeStream);
readStream.write(new Buffer('foo\nba'));
readStream.write(new Buffer('r\r\n\n\r'));
readStream.end(new Buffer('\nbaz'));
$ node example.js
foo
bar
baz
<<< all done >>>