https://github.com/tilfin/konfig-yaml
Loader of YAML configuration for each execution enviroments
https://github.com/tilfin/konfig-yaml
config configuration nodejs npm yaml
Last synced: about 1 year ago
JSON representation
Loader of YAML configuration for each execution enviroments
- Host: GitHub
- URL: https://github.com/tilfin/konfig-yaml
- Owner: tilfin
- License: mit
- Created: 2017-02-21T05:51:15.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2019-07-08T09:54:00.000Z (almost 7 years ago)
- Last Synced: 2025-05-07T23:38:33.809Z (about 1 year ago)
- Topics: config, configuration, nodejs, npm, yaml
- Language: JavaScript
- Homepage:
- Size: 29.3 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
konfig-yaml
===========
[![NPM Version][npm-image]][npm-url]
[](https://travis-ci.org/tilfin/konfig-yaml)
[](https://codeclimate.com/github/tilfin/konfig-yaml)
[](https://codeclimate.com/github/tilfin/konfig-yaml/coverage)
The loader of yaml base configuration for each run enviroments like [settingslogic](https://github.com/settingslogic/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](https://github.com/tilfin/konfig-yaml-rb) also exists for Ruby.
## Install
```
$ npm i konfig-yaml
```
## How to Use
```
const konfig = require('konfig-yaml');
config = konfig(, [opts]);
```
* `name` specifys the name of `config/.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](LICENSE)
[npm-image]: https://img.shields.io/npm/v/konfig-yaml.svg
[npm-url]: https://npmjs.org/package/konfig-yaml