3.1.0 • Published 2 years ago

konvenient v3.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

To get started, simply install konvenient using your package manager of choice:

npm i konvenient

Quickstart

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.

Features

  • 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.
  • Inversify Support. Konvenient comes with inversify support baked in: if inversify is available, then konvenient decorates all configuration classes with @injectable().

License

Licensed under the MIT License.