Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

config-file-helper

YotamHassin4ISC0.1.1TypeScript support: included

Config File That Helper, Take default object, Save it to the wanted file, and let you Change the file programmatically.

Helper, Node, Node.JS, NPM, files, config, config file, fs, file system

readme

config-file-helper

Config File That Helper, Take default object, Save it to the wanted file, and let you Change the file programmatically.

npmjs/config-file-helper

github/YotamHassin/config-file-helper

Installation

cd <my_location>
npm install config-file-helper --save

Usage

TypeScript

TS Flat Object

import * as configHelper from 'config-file-helper';

// No complex object
interface ConfigType {
    name: string;
    val: number;
}

// Not to be changed, saved as default and backup for file.
const _configObject: ConfigType = {
    name: "some name",
    val: 5,
};

// flat object, No complex nested objects.
const configFileObject: ConfigType = configHelper.initConfigObject<ConfigType>('configObject.js', _configObject);

console.log('print configFileObject.name: ', configFileObject.name);

console.log('print configFileObject.val: ', configFileObject.val);
configFileObject.val+=5;
console.log('after update print configFileObject.val: ', configFileObject.val);

TS Complex Object

/* --- complex object example --- */
import * as configHelper from 'config-file-helper';

// defaultObject to init if file damages/not exist
interface ConfigTypeComplex {
    name: string;
    arr: Array<{innerName: string, val: number}>
}

const defaultObjectComplex: ConfigTypeComplex = {
    name: 'some name', 
    arr: [{innerName: 'some inner name', val: 3}]
};

const fileObjectHandler = configHelper.
    FileObjectHandler._('configFileObject.js', defaultObjectComplex);

function print() {
    var val: number = fileObjectHandler.get().arr[0].val;
    console.log('val: ', val);
}

function update() {
    fileObjectHandler.set((obj: ConfigTypeComplex) => {
        obj.arr[0].val += 3;
    });
}

print();
update();
print();

JavaScript

JS Flat Object

/* --- flat object example, Not for complex\nested objects --- */
const configHelper = require('config-file-helper');

const configFileObject = configHelper.initConfigObject('./configFileObject.js', { name: 'some name', val: 5 });

console.log('print configFileObject.name: ', configFileObject.name);

console.log('print configFileObject.val: ', configFileObject.val);
configFileObject.val+=5;
console.log('after update print configFileObject.val: ', configFileObject.val);

JS Complex Object

/* --- complex object example --- */
const configHelper = require('config-file-helper');

// defaultObject to init if file damages/not exist
const defaultObject = {
    name: 'some name', 
    arr: [{innerName: 'some inner name', val: 3}]
};

const fileObjectHandler = configHelper.
    FileObjectHandler._('configFileObject.js', defaultObject);

function print() {
    var val = fileObjectHandler.get().arr[0].val;
    console.log('val: ', val);
}

function update() {
    fileObjectHandler.set((obj) => {
        obj.arr[0].val += 3;
    });
}

print();
update();
print();

Join me on the quest to make Computer, Software and Development Simple.

Patreon/YotamHassin