1.0.3 • Published 8 years ago

lblr-parser v1.0.3

Weekly downloads
115
License
-
Repository
github
Last release
8 years ago

Line-by-line recursively parser

Parser is Writable stream.

Simple

var parser = require('lblr-parser')();
parser.registerLineProcessor(/^#(\d+)/, function(match, number) {
    console.log(number);
});
parser.end(['foo', '#1', 'bar', '#2', 'baz'].join('\n'));
// result: 1, 2

Recursively

var parser = require('lblr-parser')();
parser.registerLineProcessor(/^#(\d+)/, function(match, number) {
    console.log(number);
});
parser.registerLineProcessor(/^\d+/, function(number) {
    return '#' + (number * number) + '\n';
});
parser.end(['foo', '#1', 'bar', '#2', 'baz', '3'].join(\n));
// result: 1, 2, 9

Recursively async

var parser = require('lblr-parser')();
parser.registerLineProcessor(/^#(\d+)/, function(match, number) {
    console.log(number);
});
parser.registerLineProcessor(/^\d+/, function(number) {
    return new Promise((resolve) => {
        setTimeout(() => {
            resolve('#' + (number * number) + '\n');
        }, 200);
    });
});
parser.end(['foo', '#1', 'bar', '#2', 'baz', '3'].join('\n'));
// result: 1, 2, 9

API

  • Event complete is emitted after the finish event has been emitted, and all lines has been asynchronously parsed.
  • Constructor([boolean, optional] trimLine)
  • parser.registerLineProcessor([RegExp] pattern, [Function] fn). Fn arguments: line, RegExp.$0, RegExp.$1, ..., meta
1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago

0.1.1

10 years ago

0.1.0

10 years ago