/quadro

Server-side framework for building services

Primary LanguageJavaScriptMIT LicenseMIT

Quadro framework

Code Climate CircleCI bitHound Dependencies

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