Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

node-line-reader

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-line-reader

Reads lines of text from input stream

  • 0.0.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.8K
increased by25.47%
Maintainers
1
Weekly downloads
 
Created
Source

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

Keywords

FAQs

Package last updated on 15 Jan 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc