konfig-yaml
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

konfig-yaml

NPM Version Build Status Code Climate Test Coverage

The loader of yaml base configuration for each run enviroments like settingslogic.

  • Expand environment variables (ex. users-${NODE_ENV})
    • If an environment variable is not set, it is to be emtpy string.
    • If ${DB_USER:-user} or ${DB_USER:user} is defined, user is expanded unless DB_USER does not exists.
  • Deep merge the environment settings and default settings (except array items)
  • Node.js 6.10 or later
  • The gem library also exists for Ruby.

Install

$ npm i konfig-yaml

How to Use

const konfig = require('konfig-yaml');

config = konfig(<name>, [opts]);
  • name specifys the name of config/<name>.yml ( default app )
  • opts
    • path config directory path resolved from the process current one ( default NODE_CONFIG_DIR value or config )
    • env Run environment ( default NODE_ENV value or development )
    • useCache whether using cache ( default true )

Clear cache

konfig.clear();

Example

Setup

config/app.yml

default:
  port: 8080
  logger:
    level: info
  db:
    name: ${BRAND}-app-${NODE_ENV}
    user: user
    pass: pass

production:
  port: 1080
  logger:
    level: error
  db:
    pass: Password

main.js

const konfig = require('konfig-yaml');
const config = konfig();

console.log(config.port);
console.log(config.logger.level);
console.log(config.db.user);
console.log(config.db.name);
console.log(config.db.password);

Run

In development

$ NODE_ENV=development BRAND=normal node main.js
8080
info
normal-app-development
user
pass

In production

$ NODE_ENV=production BRAND=awesome node main.js
1080
error
awesome-app-production
user
Password

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i konfig-yaml

Weekly Downloads

21

Version

1.0.1

License

MIT

Unpacked Size

16.4 kB

Total Files

12

Last publish

Collaborators

  • tilfin