@sphericalelephant/senodeconf

1.3.1 • Public • Published

senodeconfig

NPM Version NPM Downloads Build Status Coverage Status

About

A simple nconf wrapper that supports multiple stages (environments via NODE_ENV) and provides sane configuration file lookups on *nix systems.

Installation

$ npm install @sphericalelephant/senodeconf

Getting Started

Basic Usage

lib/config.js

NODE_ENV=development

// lib/myconfig.js
module.exports = require('senodeconfig')('my-app');

// other file
const config = require('lib/myconfig');
config.get('my:setting'); // can be used like nconf

merges the following configurations in the following order:

  • ./development.conf.json
  • ~/.my-app/development.conf.json
  • /etc/my-app/development.conf.json

The settings within the global config in /etc/ are overridden by the user specific configuration in ~, which are in turn overridden by any settings made in the local config file placed in the current working directory.

Supported Options

lib/config.js

module.exports = require('senodeconfig')('my-app', {
  // array of allowed environments (NODE_ENv), defaults to  ['production', 'staging', 'development', 'local', 'test'];
  allowedEnv: [],
  // sets the default environment that is used when NODE_ENV has not been specified, defaults to 'development'
  // careful: defaultEnv must be an allowedEnv
  defaultEnv: 'environment',
  // allows adjusting the config file name, %%STAGE%% must be used exacly once, as it is substituted
  configFileNameTemplate: '%%STAGE%%_custom_config_name.json',
  // allows setting a custom env variable separator, default is "_"
  envSeparator: '__'
});

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i @sphericalelephant/senodeconf

Weekly Downloads

4

Version

1.3.1

License

MIT

Unpacked Size

11.2 kB

Total Files

12

Last publish

Collaborators

  • siyb