@meniga/config
v6.1.37-alpha.0
Published
A library that gives access to config files in Meniga apps
Downloads
573
Readme
@meniga/config
Config is a utility library that reads the cosmicConfig property from the window object and merges in a built config object.
@meniga/cli can help create these configs for different environments. See here.
Exports
globalConfig
globalConfig is a wrapper for Config.get, and can be used like this:
const someValue = globalConfig('path/to/config', someDefaultValue)
Example:
import { globalConfig } from '@meniga/config'
const _configItemsPerPage = globalConfig('transactions.itemsPerPage', 50)
getBooleanConfigValue
getBooleanConfigValue makes sure that the value you get from the config is a boolean (e.g. if the config file itself has a string value 'true' you will get back a Boolean(true)). Example:
import { getBooleanConfigValue } from '@meniga/config'
const _configShowCurrentMonthInChart = getBooleanConfigValue('transactions.showCurrentMonthInChart', false)
getIntConfigValue
getIntConfigValue makes sure that the value you get from the config is an integer (e.g. if the config file itself has a string value '10' you will get a Number(10) back). Example:
import { getIntConfigValue } from '@meniga/config'
const _configUndoCategoryChangeTimeout = getIntConfigValue('transactions.undoCategoryChangeTimeout', 3000)
default
The default export is the config class. This class has 4 methods:
get(key, defaultValue = null) : gets the vale from the merged config, if null then returns the default value
all() : get the whole merged config object
pretty() : prints the merged config object out to the console
init() : initializes @meniga/config by preloading JSON config files (config/config.json and config/override.json) generated by webpack and exposes them to the get(), all() and pretty() methods. This method should be called during the initialization of your app.
load(cosmicJsonConfig, overrideJsonConfig) : Initialize @meniga/config by setting already fetched JSON config files generated by webpack and assigning them to the "window.cosmicConfig" and "window.cosmicOverride" javascript variables.