lol-file-parser
v1.0.0
Published
A factory used to create generic file parsers.
Downloads
48
Maintainers
Readme
📄 lol-file-parser
A factory used to create generic file parsers.
Download
lol-file-parser is installable via:
- GitHub
git clone https://github.com/Pupix/lol-file-parser.git
- npm:
npm install lol-file-parser
- yarn:
yarn add lol-file-parser
Usage example
var fs = require('fs-extra'),
fileParser = require('lol-file-parser'),
// Create a JSONParser Class
class JSONParser extends FileParser {
async _parse(parser) {
return parser.string(parser.size());
}
async _read(parsedData) {
return JSON.parse(parsedData);
}
}
// Create an instance of out new class
json = new JSONParser();
// Read the package.json file
json.read('package.json').then(console.log)
// {
// "name": "lol-file-parser",
// "license": "MIT",
// "homepage": "https://github.com/Pupix/lol-file-parser",
// ...
// }
General
The parser has two flows and each further method depends on the previous one
Configuring the parser
To create a parser you need to extend the base parser and override the following methods:
Used to create a data structure.
Parameters
- data {*} Initial data to generate the structure.
Returns Promise
Used to write data to disk.
Parameters
- createdData {*} The data passed by
_create
. - output {string} The path where the file should be stored.
Returns Promise
_parse(parser)
Used to parse data from a file / buffer.
Parameters
- parser {*} An instance of a
binary-buffer-parser
.
Returns Promise
_read(parsedData, parser)
Used to further parse the data into a human readable format.
Parameters
- data {*} The data passed by
_parse
. - parser {Parser} An instance of a
binary-buffer-parser
.
Returns Promise
_extract(data, output)
Used to write the parsed data to disk.
Parameters
- data {*} The data passed by
_read
. - output {string} The path where the file should be stored.
- parser {Parser} An instance of a
binary-buffer-parser
.
Returns Promise
Using the parser
After you set up your parser and create an instance, the following methods will be available:
create(data)
It will create a data structure from the passed data.
Parameters
- data {*} The original data.
** Returns** Promise
write(data, output)
It will create a data structure and write it to disk.
Parameters
- data {*} The original data.
- output {string} The path where the file should be stored.
** Returns** Promise
parse(input, cb)
It will parse a file from the input
file / buffer.
Parameters
- input {string, Buffer} A path to where the file to parse resides, or the file's buffer itself.
** Returns** Promise
read(input, cb)
It will parse and create a human readable structure of a file from the input
path/buffer.
Parameters
- input {string, Buffer} A path to where the file to parse resides, or the file's buffer itself.
** Returns** Promise
extract(input, output, cb)
It will read a file / buffer and store a human readable version of it on disk.
Parameters
- input {string, Buffer} A path to where the file to parse resides, or the file's buffer itself.
- output {string} The path where the file should be stored.
** Returns** Promise