Narcissistic Preening Monarch
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    njet-configurationpublic

    njet-configuration Build Status

    Configuration handler for projects. Njet configuration is responsible for loading yaml configuration files.

    Installation

    npm install njet-configuration

    Usage

    First load njet configuration

    var njetConfiguration = require('njet-configuration');

    and create first configuration:

    var config = njetConfiguration.create();

    Getting data

    To get Your configuration use:

    config.get('x'); // to get specific value
    config.getConfiguration(); // to get all values as json object

    Set values from json objects

    There are three ways to set configuration values.

    config.set('x', 5);

    will set "x" to 5. Now when You get Your configuration You will receive:

    { "x": 5 }

    You can also replace whole configuration using load:

    config.load({
        y: 6
    });

    This will replace Your configuration and You will receive:

    { "y": 6 }

    Or You can merge two objects together:

    config.merge({
        z: 1
    });

    To get:

    { "y": 6, "z": 1 }

    Merging

    Merge will always do deep copy of the objects. For example:

    config.load({
        x: 1,
        y: ["a"]
    });
     
    config.merge({
        y: ["b"],
        z: 3
    });

    Will result:

    { "x": 1, "y": ["a", "b"], "z": 3 }

    Validating

    There are two ways to validate objects. You can add validators:

    config.addValidator(function (config) {
        if (config.key === undefined) {
            return false;
        }
        return true;
    });

    Or schema:

    config.schema({
        x: config.expect.number()
    });

    To validate configuration, simply use:

    config.validate();
    config.isValid();

    For more information about schema validation visit https://github.com/cruks/cruks-lib-config

    Yaml configuration files

    You can load yaml files and directories containing yaml files like this:

    config.load('/path/to/directory');
    config.load('/path/to/file.yml');
    config.merge('/path/to/another_file.yml');
    config.merge('/path/to/another/directory');

    Configuration

    You cann pass options to njet configuration constructor. Like this:

    var config = njetConfiguration.create({
        varbosity: 1,
        expect: expect,
        loader: loader
    });
    • Verbosity above 0 (default 0) allow njet configuration to print error messages on standard output if configuration validation fails.
    • expect is a module to validate configuration. It should have .schema() method that return object with .asset() method. Assert should take configuration json object as first parameter.
    • loader is a module for loading data. As first argument, loader take either data object or path to file. By default loader only load .yml files.

    install

    npm i njet-configuration

    Downloadsweekly downloads

    9

    version

    1.0.1

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar