poliparser

The only parser you need

Usage no npm install needed!

<script type="module">
  import poliparser from 'https://cdn.skypack.dev/poliparser';
</script>

README

Poliparser

Build Status Coverage Status npm license size npm

Poliparse is used to extract and parse data from strings, files, urls and many other objects in a simple and fast way.

The Default modules allows you to parse:

  • String
  • Array
  • Object
  • DOM Elements
  • JSON
  • CSV
  • Hash & Chipertext

You can use the default modules or easily add your custom one ( see all the modules on the Examples page ).

Install

npm install --save poliparser 

Usage

Import and Instantiate Poliparser

const Poliparser = require('poliparser');

let p = new Poliparser();

set a parser template, In this example is used the module between from str library.

p.setParser({
    m: 'str_between',
    from: '<title>',
    to: '</title>'
});
let data = `<title>hello</title>
    <div class=".container">
        <a href="link1.html">link1</a>
    </div>`;

let output = p.parse(data);

console.log(output);

output

hello

ps. The fastest way is to pass it in the declaration like this

let p = new Poliparser({
    m: 'between',
    from: '<title>',
    to: '</title>'
});

Documentation

See Here for complete modules documentation and Here for real world examples.

Add Module

You can use setModule() and requireModule() to add custom modules.

let p = new Poliparser();

p.setModule('my_parse_module', (data, block) => {
    return data.map(x => x * block.value);
});

p.setParser({
    m: 'my_parse_module',
    value: 3
});

let out = p.parse([1,2,3]);

console.log(out);

same as

let p = new Poliparser();

p.requireModule('my_parse_module', 'myModule.js');

p.setParser({
    m: 'my_parse_module',
    value: 3
});

let out = p.parse([1,2,3]);

console.log(out);
//myModule.js
module.exports = (data, block) => {
    return data.map(x => x * block.value);
};

output

[ 3, 6, 9 ]

Add Library

You can add a new library with the setLibrary or requireLibrary method.

let p = new Poliparser();

p.setLibrary('myLib', {
    mul: (data, block) => {
        return data * block.value;
    },
    sum: (data, block) => {
        return data + block.value;
    }
});

p.setParser([{
    m: 'myLib_mul',
    value: 3
},{
    m: 'myLib_sum',
    value: 2
}]);

let out = p.parse(10);

console.log(out);

same as

let p = new Poliparser();

p.requireLibrary('myLib', 'myLib.js');

p.setParser([{
    m: 'myLib_mul',
    value: 3
},{
    m: 'myLib_sum',
    value: 2
]);

let out = p.parse(10);

console.log(out);
//myLib.js
module.exports = {
    mul: (data, block) => {
        return data * block.value;
    },
    sum: (data, block) => {
        return data + block.value;
    }
}

output

32