Meet npm Pro: unlimited public & private packages + package-based permissions.Learn more »

json-file-plus

3.3.1 • Public • Published

json-file-plus Version Badge

Build Status dependency status dev dependency status License Downloads

npm badge

A module to read from and write to JSON files, without losing formatting, to minimize diffs.

Example

var jsonFile = require('json-file-plus');
var path = require('path'); // in node-core
var filename = path.join(process.cwd(), 'package.json');
var callback = function (err, result) { /* your code here */ };
 
/* Note: jsonFile also returns a Promise, if you prefer that to a Node-style callback ("errorback"). */
jsonFile(filename, function (err, file) {
    if (err) { return doSomethingWithError(err); }
 
    file.data; // Direct access to the data from the file
    file.format; // extracted formatting data. change at will.
 
    file.get('version'); // get top-level keys. returns a Promise
    file.get('version', callback); // get top-level keys. calls the errorback
    file.get(); // get entire data. returns a Promise
    file.get(callback); // get entire data. calls the errorback
 
    /* pass any plain object into "set" to merge in a deep copy */
    /* please note: references will be broken. */
    /* if a non-plain object is passed, will throw a TypeError. */
    file.set({
        foo: 'bar',
        bar: {
            baz: true
        }
    });
    
    file.remove('description'); // remove a specific key-value pair. returns a Promise
     file.remove('description', callback); // remove a specific key-value pair. calls the errorback
 
    /* change the filename if desired */
    file.filename = path.join(process.cwd(), 'new-package.json');
 
    /* Save the file, preserving formatting. */
    /* Errorback will be passed to fs.writeFile */
    /* Returns a Promise. */
    file.save(callback).then(function () {
        console.log('success!');
    }).catch(function (err) {
        console.log('error!', err);
    });
});

Tests

Simply run npm test in the repo

Install

npm i json-file-plus

DownloadsWeekly Downloads

7,820

Version

3.3.1

License

MIT

Unpacked Size

39.5 kB

Total Files

15

Last publish

Collaborators

  • avatar