lblr-parser

1.0.3 • Public • Published

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

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.3
    3
    • latest

Version History

Package Sidebar

Install

npm i lblr-parser

Weekly Downloads

56

Version

1.0.3

License

none

Last publish

Collaborators

  • kolyaj