Quadro framework
TOC:
Requirements
- NodeJS v7.6.0+
Installation
Create a new app and add the following to package.json:
"dependencies": {
"quadro": ""
}
In app.js
add:
const Quadro = require('quadro')
Quadro()
You're done! Run with:
node app.js [--watch]
Test with:
node app.js test [--watch]
Configuration manager
Config files should be placed in ROOT/config/
dir.
To get value of key.nestedKey
in configuration file named config/someConfig.yml
:
app.config.someConfig.key.nestedKey
For safe configuration fetch, use config.get
:
app.config.get('someConfig.key.nestedKey')
To get value of key.nestedKey
in config/someConfig.yml|yaml|js|json
and
defaults to 3000
if such key doesn't exist
app.config.get('someConfig.key.nestedKey', 3000)
Environment-specific configuration
Quadro will load configuration from these paths (in the following order):
- config/
- config/$NODE_ENV
- config/local
Note: $NODE_ENV - is the NODE_ENV environment variable value
Configurations are merged while loading. In the following example:
|-- config/quadro.yml
|- dev/quadro.yml
|- local/quadro.yml
Configuration keys from local/quadro.yml
will override keys from dev/quadro.yml
which in turn will override keys from config/quadro.yml
.
Local configuration:
It is highly recommended that any config values that are tweaked during debugging/development
will be added to local/
configs. This way you can add **/config/local/
to .gitignore
and be able to keep your dev environment clean during commits/pushes.
You can maintain your local-machine specific configuration config/local. For git to ignore those changes use:
git update-index --skip-worktree **/config/local/*
Tests runner
To run tests use:
node app.js test
To make tests re-run on file changes use:
node app.js test --watch