njet-configuration

1.0.1 • Public • Published

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.

Dependencies (3)

Dev Dependencies (2)

Package Sidebar

Install

npm i njet-configuration

Weekly Downloads

1

Version

1.0.1

License

MIT

Last publish

Collaborators

  • dariuszp