$ npm install config-cache
General purpose JavaScript object storage methods.
Major breaking changes were made in 5.0!
In an effort to simplify the library, the following methods were removed:
clone
: use clone-deep, example: var obj = cloneDeep(config.cache)
keys
: use Object.keys(config.cache)
omit
: use .del()
exists
: use config.cache.hasOwnProperty()
or has-valuehas
: use config.cache.hasownProperty()
or has-valuehasOwn
: use config.cache.hasOwnProperty()
or has-valueThe following data methods were also removed, use plasma-cacheif you need these methods:
data
process
plasma
extendData
Install with npm
$ npm i config-cache --save
var Config = require('config-cache');
var config = new Config();
Initialize a new Config
, optionally passing an object to initialize with.
Params
cache
{Object}Example
var config = new Config();
Static method for mixing Config
prototype properties onto obj
.
Params
obj
{Object}returns
{Object}Example
function App() {
Config.call(this);
}
Config.mixin(App.prototype);
Assign value
to key
or return the value of key
.
Params
key
{String}value
{*}returns
{Object} Config
: to enable chainingExample
config.set(key, value);
Return the stored value of key
. Dot notation may be used to get nested property values.
Params
key
{*}escape
{Boolean}returns
{*}Example
config.set('foo', 'bar');
config.get('foo');
// => "bar"
// also takes an array or list of property paths
config.set({data: {name: 'Jon'}})
config.get('data', 'name');
//=> 'Jon'
Create a constant (getter/setter) for setting and getting values on the given namespace
or this.cache
.
Params
key
{String}value
{*}Example
config.constant('site.title', 'Foo');
Add values to an array on the cache
.
returns
{Object} Config
: to enable chainingExample
// config.cache['foo'] => ['a.hbs', 'b.hbs']
config
.union('foo', ['b.hbs', 'c.hbs'], ['d.hbs']);
.union('foo', ['e.hbs', 'f.hbs']);
// config.cache['foo'] => ['a.hbs', 'b.hbs', 'c.hbs', 'd.hbs', 'e.hbs', 'f.hbs']
Extend the cache
with the given object. This method is chainable.
Or define the property to extend:
returns
{Object} Config
: to enable chainingExamples
config
.extend({foo: 'bar'}, {baz: 'quux'});
.extend({fez: 'bang'});
config
// extend `cache.a`
.extend('a', {foo: 'bar'}, {baz: 'quux'})
// extend `cache.b`
.extend('b', {fez: 'bang'})
// extend `cache.a.b.c`
.extend('a.b.c', {fez: 'bang'});
Remove keys
from the cache. If no value is specified the entire cache is reset.
Example
config.del();
If expand: true
is defined on the options, the value will be set using [expander].
Examples:
// as a key-value pair
config.set('a', {b: 'c'});
// or as an object
config.set({a: {b: 'c'}});
// chaining is possible
cache
.set({a: {b: 'c'}})
.set('d', 'e');
Expand template strings with expander:
config.set('a', {b: '${c}', c: 'd'}, true);
Visit the [expander] docs for more info.
a.b.c
) to get a nested value from an object.'a.b.c'
) paths.Pull requests and stars are always welcome. For bugs and feature requests, please create an issue
Install dev dependencies:
$ npm i -d && npm test
Jon Schlinkert
Copyright © 2015 Jon Schlinkert Released under the MIT license.
This file was generated by verb-cli on June 13, 2015.
© 2010 - cnpmjs.org x YWFE | Home | YWFE