Node Config Battle
A scientific comparison of Node.js config packages ::
Compared packages
Selected requirements
All tests/comparisons should include the following steps we selected as requirements to represent a reasonable workflow.
- Define a hierarchical configuration file
- Override one value with an environment variable
- Override another key with provided command arguments
- Override a few keys with additional file contents (for example local development environment definitions)
- One key should be a password and its value should not be set within the JSON, but rather through an environment variable, if a supplied key is missing or has an incorrect value, fail fast with exception
- Fail fast if one mandatoiry config key wasn't provided
- Cast keys to specific pre-defined types
- Define default values for keys