Skip to content

WiserSolutions/quadro

Repository files navigation

Quadro framework

Code Climate CircleCI bitHound Dependencies

TOC:

Requirements

  • See .nvmrc in the root of the project for Node version requirements and if possible use NVM to install Node.

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

Contributing

Commit messages should be according to https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular

In short:

feat(ci): implemented a feature in CI
fix(pubsub): retries on rabbitmq disconnect
perf(http): HTTP performance improvements
docs(...): ...
refactor(...): ...
test(...): ...
chore(...): ...