@umbrellio/cofman
v1.1.1
Published
Node.js configuration engine
Downloads
374
Readme
Cofman
Node.js configuration engine
const { Cofman, FileSource, EnvSourc, ObjectSource } = require("@umbrellio/cofman")
const instance = new Cofman()
instance.use(new FileSource({ path: "/path/to/file.yml" }))
instance.use(new FileSource({ path: "/path/to/file.json" }))
instance.use(new ObjectSource({ custom: "value" }))
instance.use(new EnvSource({ prefix: "APP" }))
const config = instance.parse()
config.get("database.url")
Install
$ yarn add @umbrellio/cofman
Usage
const instance = new Cofman()
Methods
.use(source)
– setup a config source (see sources docs).parse()
– parse sources and returnConfig
object
Config object
Methods
.get(key: string, default: any)
– returns a value by corresponding key or default valuekey
can be nested by using.
. For example –database.password
.asObject()
– returns config as a plain object
Sources
Cofman supports multiple sources for getting values in different ways.
EnvSource
Get values from env variables. All keys becomes camelCase.
new EnvSource(options)
Options
prefix: string
(optional, default:""
) – prefix for filtering env vars eg. ifprefix: "APP"
cofman will only get vars starts withAPP_
(APP_DATABASE_URL
,APP_NAME
, etc.)tryParse: boolean
(optional, default:true
) – try to parse value as a jsonnestingDelitemer: string
(optional, default:__
) – delimeter for getting nesting values eg.SOME__NESTING_VALUE=1
becomessome: { nestingValue: 1 }
FileSource
Reads config from json
and yaml
files.
new FileSource(options)
Options
path: string
(required) – path to config fileparser: Parser
(optional, determinites by file extension) – parser to use for this file contentfailMissing: boolean
(optional, default:false
) – fail when file missing or not
You can use custom file parsers using following interface:
interface Parser {
extensions: string[] // supported file extensions
parse(content: string): Object // takes file content and returns parsed object
}
ObjectSource
Just your custom object
new ObjectSource(object)
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/umbrellio/cofman.
License
Released under MIT License.
Authors
Created by Aleksei Bespalov.