npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

readly

v1.0.2

Published

read files line by line

Downloads

2

Readme

#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);