Portrait Dr. Axel Rauschmayer
Dr. Axel Rauschmayer
Homepage | Twitter
Cover of book “Exploring ES6”
Book, exercises, quizzes
(free to read online)
Logo of newsletter “ES.next news”
Newsletter (free)
Cover of book “JavaScript for impatient programmers”
Book (free online)

New Node.js module “lazylines”: read a text stream, line by line

[2012-02-27] jsshell, dev, nodejs, javascript
(Ad, please don’t block)

The new Node.js module “lazylines” allows you to read a text stream, one line at a time, lazily.

Examples

The following code reads input from stdin and prepends a number to each line.
    var ll = require("lazylines.js");

    process.stdin.resume();
    var inp = new ll.LineReadStream(process.stdin);
    var count = 1;
    inp.on("line", function (line) {
        console.log(count+": "+ll.chomp(line));
        count++;
    });
There are more examples in the demo/ directory. lazylines is very handy for shell programming. For example, you can implement a script that lets you do the following.
    # List jpg files, oldest first (-t -r), then wrap
    ls -1 -t -r *.jpg | addlinecounts.js 'mv "{line}" {padi}.jpg' | bash
The above executes commands such as
    mv "new.jpg" 001.jpg
    mv "newer.jpg" 002.jpg
    mv "newest.jpg" 003.jpg

Installation

    npm install lazylines

Related post