Awesome
config-cache
General purpose JavaScript object storage methods.
Breaking changes in 5.0!
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
: useObject.keys(config.cache)
omit
: use.del()
exists
: useconfig.cache.hasOwnProperty()
or has-valuehas
: useconfig.cache.hasownProperty()
or has-valuehasOwn
: useconfig.cache.hasOwnProperty()
or has-value
The following data methods were also removed, use plasma-cacheif you need these methods:
data
process
plasma
extendData
Install
Install with npm
$ npm i config-cache --save
Usage
var Config = require('config-cache');
var config = new Config();
API
Config
Initialize a new Config
, optionally passing an object to initialize with.
Params
cache
{Object}
Example
var config = new Config();
.mixin
Static method for mixing Config
prototype properties onto obj
.
Params
obj
{Object}returns
{Object}
Example
function App() {
Config.call(this);
}
Config.mixin(App.prototype);
.set
Assign value
to key
or return the value of key
.
Params
key
{String}value
{*}returns
{Object}Config
: to enable chaining
Example
config.set(key, value);
.get
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'
.constant
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');
.union
Add values to an array on the cache
.
returns
{Object}Config
: to enable chaining
Example
// 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
Extend the cache
with the given object. This method is chainable.
Or define the property to extend:
returns
{Object}Config
: to enable chaining
Examples
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'});
.del
Remove keys
from the cache. If no value is specified the entire cache is reset.
Example
config.del();
Usage Examples
.set
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.
Related
- cache-base: Generic object cache for node.js/javascript projects.
- engine-cache: express.js inspired template-engine manager.
- get-value: Use property paths (
a.b.c
) to get a nested value from an object. - has-value: Returns true if a value exists, false if empty. Works with deeply nested values using… more
- helper-cache: Easily register and get helper functions to be passed to any template engine or node.js… more
- loader-cache: Register loader functions that dynamically read, parse or otherwise transform file contents when the name… more
- map-cache: Basic cache object for storing key-value pairs.
- option-cache: Simple API for managing options in JavaScript applications.
- plasma-cache: Object cache for [Plasma].
- parser-cache: Cache and load parsers, similiar to consolidate.js engines.
- set-value: Create nested values and any intermediaries using dot notation (
'a.b.c'
) paths.
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue
Running tests
Install dev dependencies:
$ npm i -d && npm test
Author
Jon Schlinkert
License
Copyright © 2015 Jon Schlinkert Released under the MIT license.
This file was generated by verb-cli on June 13, 2015.