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 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); } });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 });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 });LineReader is a text lines reader from a specified file.
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.
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 linesskipBlank- 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
includepattern(s) are provided, filter will pass through lines of text which are matched by the include pattern(s) only - If only
excludepattern(s) are provided, fillter will pass through all lines except the ones which are matched by the exclude pattern(s) only - If
includeandexcludepattern(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)
When a line of text can be read from the transform, it will emit a 'readable' event.
lineBuffer | String The line of text.
This event fires when there will be no more test to read.
As Stream 'close' event: Emitted when the underlying resource (for example, the backing file descriptor) has been closed. Not all streams will emit this.
As Stream 'close' event: Emitted if there was an error receiving data.
LineTransform is a duplex stream converting input text into lines of text. LineTransform instance can be piped into antoher Writable instance.
When a line of text can be read from the transform, it will emit a 'readable' event.
lineBuffer | String The line of text.
This event fires when there will be no more test to read.
As Stream 'close' event: Emitted when the underlying resource (for example, the backing file descriptor) has been closed. Not all streams will emit this.
As Stream 'close' event: Emitted if there was an error receiving data.
Writen by Tom Pawlak - Blog
The MIT License (MIT)
Copyright © 2014 Tom Pawlak