TypeScript configuration, as konvenient as possible. | Decorator-driven configuration library for TypeScript, based on convict.
To get started, simply install konvenient using your package manager of choice:
npm i konvenient
Example for konvenient configuration:
import {Configuration, Configurable} from 'konvenient'
@Configuration()
class HttpConfiguration {
@Configurable({
doc: 'The port on which the server listens.',
format: 'port',
env: 'PORT'
})
port = 8080
}
const config = new HttpConfiguration()
console.log(config.port)
For more examples and recipes, please head over to examples.
- Everything from Convict and more. Internally, konvenient wraps convict, and exposes all of its functionality: loading configuration values from files, command line args and environment variables, format checking with support for custom formats, default values and so on!
- Decorator-driven. Konvenient embraces TypeScript classes and turns them into configuration objects via decorators. You can even nest configuration classes into each other!
- Computed Properties. Define functions and getters on configuration classes just as you would do on any other class. For an example, please refer to examples/src/recipes/03-computed.
- Inheritance Support. Configuration classes can extend each other, inheriting configurable properties.
- Env Var and File Key Derivation. Environment variables and config file keys are automatically derived from class and property names. Of course, both the derivation method and the derived values can be overridden.
Licensed under the MIT License.