Modular Configuration
A minimalistic configuration manager made The Node Way ™.
Goals
Other configuration modules failed to provide a few preferred features. This module aims to provide:
- environment variable, command line, overrides
- load from any directory, from a list of directories (with fallbacks)
- accept raw JSON objects
- have strict mode(s)
- have dot notation getters(/setters) (dot notation module)
- setters not necessary but helpful (per instance)
- read standard JSON, but also .JS (for dynamic fields?)
- synchronous and asynchronous support, with promises
- be hotloadable
- allow configuration overlaying
- be modular and function independently of other configuration objects
- allow configuration nesting and access via chaining
- allow configurations to be set, deleted, and saved
- allow configuration locking/immutability so that changes are prevented
- source tracking for debugging purposes
- option to use package.json
- browser support
API
Contents of ./config.json
:
Contents of ./alternate.json
:
Example usage:
const Config = ; const config = ;const path = ; config; config ;