1.2.0 • Published 6 years ago

config-for-dev v1.2.0

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

Config for dev

It is module can help you to makes easier a works with your settings.

Basic use

'use strict';  

var configForDev = require('config-for-dev');
var config;
/**
* @param {(array|object)} data - array or object where settings is contained
* @returns {object} - instance of config-for-dev/app/index
*/
config = configForDev.createConfig({
    prop: {
        prop2: 'value'
    }
});
// ======== OR =========
/**
* @param {string} filePath - path to file with settings.
* @returns {object} - instance of config-for-dev/app/index
*/
config = configForDev.createConfigFromFile('any-path-to-file/settings.json');

config.getByNamespace('prop.prop2'); // return "value"

See string-template

var config = configForDev.createConfig({
    prop: {
        prop2: '{value}'
    }
});
config.template({value: 'value'});
config.getByNamespace('prop.prop2'); // return "value"

Methods

/**
 * set value by string
 * @param {string} namespaceString - example: "obj1.param1[0].val1"
 * @param {*} value
 */
Application.prototype.set(namespaceString, value);

/**
 * remove value by string
 * @param {string} namespaceString - example: "obj1.param1[0].val1"
 */
Application.prototype.remove(namespaceString);

/**
 * @param {string} namespaceString - example: "obj1.param1[0].val1"
 * @param {*} defaultValue
 * @returns {*} return default value if set parameter `defaultValue` or return undefined,
 *              return undefined if data is not found
 */
Application.prototype.getByNamespace(namespaceString, defaultValue);

/**
 * @returns {(object|array)}
 */
Application.prototype.getData();

/**
 * @param {string} namespaceString - example: "obj1.param1[0].val1"
 * @returns {boolean}
 */
Application.prototype.has(namespaceString);

/**
 * return true if data is success changed
 * @param {(object|array)} dataReplace - example: {param: "value"}
 * @throws {BaseError}
 */
Application.prototype.template(dataReplace);

Support

Andrey Sergovantsev a.sergovantsev@yandex.ru