Package detail

json-file-plus

ljharb491.9kMIT4.0.0

[![github actions][actions-image]][actions-url] [![coverage][codecov-image]][codecov-url] [![dependency status][deps-svg]][deps-url] [![dev dependency status][dev-deps-svg]][dev-deps-url] [![License][license-image]][license-url] [![Downloads][downloads-im

json, json file, formatting, read

readme

json-file-plus Version Badge

github actions coverage 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

const jsonFile = require('json-file-plus');
const path = require('path');
const filename = path.join(process.cwd(), 'package.json');

jsonFile(filename).then((file) => {
    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(); // get entire data. returns a Promise

    /* 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

    /* change the filename if desired */
    file.filename = path.join(process.cwd(), 'new-package.json');

    /* Save the file, preserving formatting. returns a Promise. */
    file.save().then(function () {
        console.log('success!');
    }).catch(function (err) {
        console.log('error!', err);
    });
});

Tests

Simply run npm test in the repo