readly

1.0.2 • Public • Published

Readly

npm package

nodejs module for reading files or streams line by line

Readly can be used in two ways Emitter: Readly streams the file and fires events when each line is ready Transform: as a transform stream - pipe from and to another stream

usage

Use require("readly");

var Readly = require("readly");

Emitter

Constructor receives:

  • filename - path to a file or a stream
  • encoding - optional, default is utf8.
  • eol - optional, default is OS newline character. This can set the character to split the file by. The constrcutor throws an error if filename is a string but the file does not exist
var reader = new Readly.Emitter("filename.txt")

Readly publishes two events:

line - when a new line data is ready

end - when it is done reading

reader.on('line', function(line) {
    console.log(line);
});
 
reader.on('end', function() {
    console.log("done");
});

Readly has the following API:

read(start, count)

start - optional, default is 0. how many lines to skip from the begining of the file

count - optional, default is until the end of the file. how many lines to read from start. Can also be bigger than the actual number of lines in the file.

Readly also has the convenient methods:

readAll()
readFirst(count)

example:

reader.read(); reads all lines from the begining of the file to its end, just like reader.readAll()

reader.read(0, 10) reads the first 10 lines of a file just like reader.readFirst(10)

reader.read(10,20) skips the first 10 lines of the file and reads not more than the next 20 lines

example skipping 3 lines and then reading 4 lines from a file

var Readly = require("readly");
var reader = new Readly.Emitter("filename.txt");
reader.on('line', function(line) {
    console.log(line);
});
 
reader.on('end', function() {
    console.log("done");
});
reader.read(3, 4);

example reading all lines from a stream

var Readly = require("readly");
var fs = require('fs');
var myStream = fs.createReadStream('filename.txt'); //create a stream from any kind of source
var reader = new Readly.Emitter(myStream);
reader.on('line', function(line) {
    console.log(line);
});
reader.on('end', function() {
    console.log("done");
});
reader.readAll();

example as a transform stream

constructor receives an object options with the same options as the Emitter (encoding, eol)

var Readly = require("readly");
var reader = new Readly.Transform({ encoding: 'utf8', eol: '-'});
var myStream = fs.createReadStream('filename.txt'); //create a stream from any kind of source
var someOutputStream = new SomeOutputStream() //any write or transform stream
myStream.pipe(reader).pipe(someOutputStream);

Package Sidebar

Install

npm i readly

Weekly Downloads

0

Version

1.0.2

License

MIT

Last publish

Collaborators

  • aviv1ron1