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

node-line-reader

v0.0.3

Published

Reads lines of text from input stream

Downloads

6,595

Readme

Build Status npm version Code Climate Test Coverage

Node Line Reader

Node Line Reader is a Node.js module that helps you reading lines of text from a file.

Features:

  • Reads lines of text from Readable streams e.g. a file
  • Reads lines that match one or more patterns
  • Skips lines that match one or more patterns e.g. empty lines
  • Reads part of a file

Installation:

npm install node-line-reader

Usage:

Using LineReader

var path = require('path');
var LineReader = require('node-line-reader').LineReader;

var reader = new LineReader(path.join('/home/user', 'some-file.txt'));

// Each execution of nextLine will get a following line of text from the input file
reader.nextLine(function (err, line) {
    if (!err) {
        console.log('file line: ', line);
    }
});

Using LineTransform

var stream = getSomeReadableStream(); // Create read stream
var LineTransform = require('node-line-reader').LineTransform;  // LineTransform constructor
var transform = new LineTransform();

stream.pipe(transform); // Pipe input from a file stream over to line transform

transform.on('data', function(line) {
    // line - single line of text from input file
});

transform.on('end', function() {
    // no more text lines
});

Using LineFilter

var stream = getSomeReadableStream(); // Create read stream
var LineTransform = require('node-line-reader').LineTransform;  // LineTransform constructor
var LineFilter = require('node-line-reader').LineFilter;  // LineFilter constructor

var transform = new LineTransform();

// Skip empty lines and lines with "et" (with leading and trailing space) in them
var filter = new LineFilter({ skipEmpty: true, exclude: [/\bet\b/ });

// Pipe input from a file stream over to line transform and to the filter
stream.pipe(transform).pipe(filter); 

filter.on('data', function(line) {
    // line - single line of text from input file
});

filter.on('end', function() {
    // no more text lines
});

API:

Class: LineReader

LineReader is a text lines reader from a specified file.

'LineReader.nextLine(cb)'

This function reads another line of text from a specified file and passes it over to the callback method.

The callback has arguments (err, line). The err argument is an error that occurred while reading a line of text (null if no error occurred). The line is a string with line of text from a specified input file.

Class: LineFilter

LineFilter is a duplex stream passing through lines of text matching include and exclude rules. LineFilter instance can be piped into antoher Writable instance.

The LineFilter accepts options objects with following parameters:

  • skipEmpty - boolean value blocking empty lines
  • skipBlank - boolean value blocking blank lines (lines composed of whitespace characters)
  • include - a single instance or an array of regular expressions (see below for text filtering rules)
  • exclude - a single instance or an array of regular expressions (see below for text filtering rules)

Text filtering rules:

  • If only include pattern(s) are provided, filter will pass through lines of text which are matched by the include pattern(s) only
  • If only exclude pattern(s) are provided, fillter will pass through all lines except the ones which are matched by the exclude pattern(s) only
  • If include and exclude pattern(s) are provided, filter filter will pass through lines of text which are matched by the include pattern(s) and not matched by the exclude pattern(s)

Event: 'readable'

When a line of text can be read from the transform, it will emit a 'readable' event.

Event: 'data'

  • line Buffer | String The line of text.

Event: 'end'

This event fires when there will be no more test to read.

Event: 'close'

As Stream 'close' event: Emitted when the underlying resource (for example, the backing file descriptor) has been closed. Not all streams will emit this.

Event: 'error'

As Stream 'close' event: Emitted if there was an error receiving data.

Class: LineTransform

LineTransform is a duplex stream converting input text into lines of text. LineTransform instance can be piped into antoher Writable instance.

Event: 'readable'

When a line of text can be read from the transform, it will emit a 'readable' event.

Event: 'data'

  • line Buffer | String The line of text.

Event: 'end'

This event fires when there will be no more test to read.

Event: 'close'

As Stream 'close' event: Emitted when the underlying resource (for example, the backing file descriptor) has been closed. Not all streams will emit this.

Event: 'error'

As Stream 'close' event: Emitted if there was an error receiving data.

Author

Writen by Tom Pawlak - Blog

License:

The MIT License (MIT)

Copyright © 2014 Tom Pawlak