read and write NDJSON files (Newline Delimited JSON)
npm install fs-ndjson> read and write NDJSON files (Newline Delimited JSON)
While NDJSON is often used for efficient streaming of JSON, it is also a good format for persisting and retreiving object data collections to and from disk. For example, NeDB uses the format.
See Also:
* http://ndjson.org/
* https://en.wikipedia.org/wiki/JSON_streaming#Line-delimited_JSON
The following fs-ndjson methods mirror the fs core module method APIs, however, the methods have been universalified so that you can use promises or callbacks for async.
* readFile
* readFileSync
* writeFile
* writeFileSync
BONUS: writeFile and writeFileSync will create the parent directory, if it does not already exist.
``sh`
$ npm install --save fs-ndjson
Given /Users/tyler/project-mayhem/enemies.db contains
``
{"name":"Equifax","location":"Atlanta, GA"}
{"name":"Visa","location":"Foster City, CA"}
`js
const fsNdjson = require('fs-ndjson');
// can return a promise
fsNdjson.readFile('/Users/tyler/project-mayhem/enemies.db').then(targets => {
console.log(targets);
// [
// {
// name: "Equifax",
// location: "Atlanta, GA"
// },
// {
// name: "Visa",
// location: "Foster City, CA"
// }
// ]
});
// can use a callback
fsNdjson.readFile('/Users/tyler/project-mayhem/enemies.db', (err, enemies) => {
if (err) throw err;
console.log(enemies.length);
// => 2
});
// can be used synchronously
let enemies = fsNdjson.readFileSync('/Users/tyler/project-mayhem/enemies.db');
// BUT WAIT, THERE'S MORE! //
// Not only does it read, but it writes too! //
// fsNdjson.writeFile // use callback or promise
// fsNdjson.writeFileSync // does what you think it does
``
ISC © Buster Collings
[npm-image]: https://badge.fury.io/js/fs-ndjson.svg
[npm-url]: https://npmjs.org/package/fs-ndjson
[travis-image]: https://travis-ci.org/busterc/fs-ndjson.svg?branch=master
[travis-url]: https://travis-ci.org/busterc/fs-ndjson
[daviddm-image]: https://david-dm.org/busterc/fs-ndjson.svg?theme=shields.io
[daviddm-url]: https://david-dm.org/busterc/fs-ndjson
[coveralls-image]: https://coveralls.io/repos/busterc/fs-ndjson/badge.svg
[coveralls-url]: https://coveralls.io/r/busterc/fs-ndjson