1.5.0 • Published 10 years ago

confurg v1.5.0

Weekly downloads
2
License
Public Domain
Repository
-
Last release
10 years ago

What's "confurg"?

confurg is a node.js configuration loader: supports chaining, command line options, ENV variables, and more.

confurg is opinionated and has a clear order of precedence.

The config file formats can be either CSON or JSON.

Overview

Just require and tell confurg what your project is called:

config = require("confurg").init "myproject"

In this example, confurg will check the following locations in decreasing order of value:

1. Command line options such as --bar=baz
2. ENV variables prefaced with myproject_ 
3. /home/{user}/.myproject.cson
4. ./config.cson, based on the location of the script that required confurg
5. Defaults passed into initialization: require("confurg")({ ... },{ defaults: "go here" })

confurg will return an object containing the merged results of all 5 locations.

confurg performs a deep merge, which means:

if /home/you/.myproject.cson contains

    {
        foo:
            bar: "one"
    }

and ./config.cson contains

    {
        foo:
            baz: "two"
    }

the result will be

    {
        foo:
            bar: "one"
            baz: "two"
    }

Regarding environment variables

Most shells are very strict with variable names. Bash only allows alphanumerics and underscores. Your project should be named appropriately (my_project instead of my-project) if this is an important factor.

Additionally, to overwrite deeply nested config values, simply replace dots with a double underscore:

    $ export myproject_foo__bar__baz="value"

the above would overwrite the following:

    foo.bar.baz

in your config.

Installation

The recommended way is through npm:

$ npm install confurg

Otherwise, you can check confurg into your repository and expose it:

$ git clone git://github.com/awnist/confurg.git node_modules/confurg/

confurg is UNLICENSED.

1.5.0

10 years ago

1.4.0

11 years ago

1.3.1

11 years ago

1.2.1

12 years ago

1.2.0

12 years ago

1.1.0

12 years ago

1.0.2

12 years ago

1.0.1

12 years ago

1.0.0

12 years ago