woocommerce/plugins/woocommerce-blocks/assets/js/settings/shared/get-setting.js

27 lines
1.1 KiB
JavaScript

/**
* Internal dependencies
*/
import { allSettings } from './settings-init';
/**
* Retrieves a setting value from the setting state.
*
* @export
* @param {string} name The identifier for the setting.
* @param {*} [fallback=false] The value to use as a fallback
* if the setting is not in the
* state.
* @param {Function} [filter=( val ) => val] A callback for filtering the
* value before it's returned.
* Receives both the found value
* (if it exists for the key) and
* the provided fallback arg.
* @return {*} The setting value.
*/
export function getSetting( name, fallback = false, filter = ( val ) => val ) {
const value = allSettings.hasOwnProperty( name )
? allSettings[ name ]
: fallback;
return filter( value, fallback );
}