fs-ndjson

1.1.0 • Public • Published

fs-ndjson NPM version Build Status Dependency Status Coverage percentage

read and write NDJSON files (Newline Delimited JSON)

FYI

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:

API

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.

Installation

$ npm install --save fs-ndjson

Usage

Given /Users/tyler/project-mayhem/enemies.db contains

  {"name":"Equifax","location":"Atlanta, GA"}
  {"name":"Visa","location":"Foster City, CA"}
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

License

ISC © Buster Collings

Package Sidebar

Install

npm i fs-ndjson

Weekly Downloads

514

Version

1.1.0

License

ISC

Unpacked Size

11.4 kB

Total Files

10

Last publish

Collaborators

  • buster