Skip to content

ricardobeat/konf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Konf

A runtime configuration loader for node apps.

npm install konf

Its purpose is to allow moving seamlessly from configuration files to process.env variables. When deploying to SaaS platforms like Heroku/Nodejitsu/etc non-versioned file uploads are not a possibility. Konf allows you to fallback to environment variables without any changes to your code.

It's also self-documenting, so users installing your application have clear instructions to follow:

screenshot

Usage

var Konf = require('konf')

var config = new Konf().describe({
    appDomain: "The application domain/host name"
  , authCallback: "OAuth callback"
  , twitter: {
        key: "Twitter API key"
        secret: "Twitter API secret"
  }
}).load('./config').env()

This will attemp to populate the given config values first from ./config.(js|json|coffee) file and then from properties on process.env. Environment keys are automatically converted from camelCase to snake_case, and are case-insensitive.

Defaults

Default values can be set either by calling the defaults method:

var config = new Konf().describe({
    appname: 'Application name'
}).defaults({
    appname: 'testapp'
}).load('./config')

Or, for convenience, by passing a [description, defaultValue] array to each key in the describe call:

var config = new Konf().describe({
    appname: ['Application name', 'testapp']
}).load('./config')

Keep in mind that keys with a default value set will not trigger any warnings when missing from specified config files.

License

MIT

About

runtime configuration for node.js apps

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages