reverse-line-reader-size

Asynchronous line-by-line reverse file reader

Usage no npm install needed!

<script type="module">
  import reverseLineReaderSize from 'https://cdn.skypack.dev/reverse-line-reader-size';
</script>

README

Reverse Line Reader Build Status

Asynchronous reverse line-by-line file reader. This started as a fork of Nick Ewing's line-reader. Major parts are rewritten to read the file from bottom to top, but the api works more or less the same.

Install

npm install reverse-line-reader-size

Usage

The eachLine function reads each line of the given file. Upon each new line, the given callback function is called with two parameters: the line read and a boolean value specifying whether the line read was the last line of the file (on the top of the file). If the callback returns false, reading will stop.

var lineReader = require('reverse-line-reader-size');

lineReader.eachLine('file.txt', function(line, last) {
  console.log(line);

  if (/* done */) {
    return false; // stop reading
  }
});

eachLine can also be used in an asynchronous manner by providing a third callback parameter like so:

var lineReader = require('reverse-line-reader-size');

lineReader.eachLine('file.txt', function(line, last, cb) {
  console.log(line);

  if (/* done */) {
    cb(false); // stop reading
  } else {
    cb();
  }
});

The eachLine function also returns an object with one property, then. If a callback is provided to then, it will be called once all lines have been read.

var lineReader = require('reverse-line-reader-size');

// read all lines:
lineReader.eachLine('file.txt', function(line) {
  console.log(line);
}).then(function () {
  console.log("I'm done!!");
});

Contributors

  • Paul Em
  • Nick Ewing
  • Jameson Little (beatgammit)

Copyright 2015 Paul Em.