@logzio-node-toolbox/config
TypeScript icon, indicating that this package has built-in type declarations

0.0.16 • Public • Published

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

Readme

Keywords

none

Package Sidebar

Install

npm i @logzio-node-toolbox/config

Weekly Downloads

3,098

Version

0.0.16

License

MIT

Unpacked Size

69.4 kB

Total Files

6

Last publish

Collaborators

  • dimad
  • ifatregev
  • miletsky
  • mad_vinking
  • alonmiz
  • nofar9792