@logzio-node-toolbox/config
v0.0.16
Published
config manager based on Joi schema with subscription capabilities
Downloads
18,586
Readme
Config
an efficient config manager based on Joi schema for better easy managing configurations
Usage
import { Config } from '@logzio-node-toolbox/config';
const schema = {}; // Joi schema or array of Joi schemas (in case or array will merge the schemas)
const defaults = {}; // defaults to override the schema defaults (use to pass defaults per region or environment)
const overrides = {}; // configs that could never be override even when try to set (usually environment variables)
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(); // stop watching value