json-to-jsonl
Version:
Convert an array in a .json file to a newline-delimited .jsonl file.
37 lines (30 loc) • 905 B
JavaScript
;
var fs = require('fs');
var getJSON = function getJSON(jsonFilename) {
return require(jsonFilename);
};
var validateArray = function validateArray(arr) {
if (!Array.isArray(arr)) {
throw Error('Could not find array.');
}
return arr;
};
var defaultGetArray = function defaultGetArray(x) {
return x;
};
var writeJSONLines = function writeJSONLines(jsonFilename) {
var getArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultGetArray;
var json = getJSON(jsonFilename);
var arr = validateArray(getArray(json));
var jsonlFilename = jsonFilename.replace(/.json/g, '.jsonl');
var writeStream = fs.createWriteStream(jsonlFilename);
arr.map(function (x) {
return writeStream.write(JSON.stringify(x) + '\n');
});
writeStream.end();
return {
lines: arr.length,
file: jsonlFilename
};
};
module.exports = writeJSONLines;