Config
an efficient config manager based on Joi schema for better easy managing configurations
Usage
import { Config } from '@logzio-node-toolbox/config';
const schema = {};
const defaults = {};
const overrides = {};
const config = new Config({ schema, defaults, overrides });
get value
use path to fetch nested value, if empty will fetch the all config
const value = config.get('path.to.value');
set value
use path in key property to set nested values, if empty will mergeDeep from root
onError - callback for when validation error with the schema, if onError return true will continue with the merge config even if not valid
config.set({ value: {}, key = 'path.to.set', onError: (err) => {
console.log(err)
return true;
} })
subscribe
onChange - callback to invoke when value changed
if key is empty will watch all config
return unSubscribe method
const unSubscribe = config.subscribe({ key: 'path.to.value.to.watch', onChange: (value) => {
console.log("new value:", value);
}})
unSubscribe();