Parse a JSON file using streams and a selector
var fs = require('fs');
var JSONStream = require('JSONStream');
var es = require('event-stream');
/*
format of entry:
{ "rows": [{
"id": "xxx",
"value": {
"dependencies": { "toto": "1.0.0", "titi": "1.0.1" }
}
},
...
]}
*/
var SELECTOR = 'rows.*';
var inputFileName = process.argv[2] || './toto.json';
load(inputFileName);
function load(path, done) {
var all = [];
var parser = JSONStream.parse(SELECTOR);
var count = 0;
var res = fs.createReadStream(path)
.pipe(parser)
.pipe(es.map(function (data, cb) {
var deps = '';
if (data.value.dependencies) {
deps = Object.keys(data.value.dependencies).join(' ');
}
cb(null, data.id + ' ' + deps + '\n');
}))
.pipe(process.stdout);
}