7.7 KiB
cache-base
Basic object cache with
get
,set
,del
, andhas
methods for node.js/javascript projects.
Install
Install with npm:
$ npm install --save cache-base
Usage
var Cache = require('cache-base');
// instantiate
var app = new Cache();
// set values
.set('a', 'b');
app.set('c.d', 'e');
app
// get values
.get('a');
app//=> 'b'
.get('c');
app//=> {d: 'e'}
console.log(app.cache);
//=> {a: 'b'}
Inherit
var util = require('util');
var Cache = require('cache-base');
function MyApp() {
.call(this);
Cache
}.inherits(MyApp, Cache);
util
var app = new MyApp();
.set('a', 'b');
app.get('a');
app//=> 'b'
Namespace
Define a custom property for storing values.
var Cache = require('cache-base').namespace('data');
var app = new Cache();
.set('a', 'b');
appconsole.log(app.data);
//=> {a: 'b'}
API
namespace
Create a Cache
constructor that when instantiated will
store values on the given prop
.
Params
prop
{String}: The property name to use for storing values.returns
{Function}: Returns a customCache
constructor
Example
var Cache = require('cache-base').namespace('data');
var cache = new Cache();
.set('foo', 'bar');
cache//=> {data: {foo: 'bar'}}
Cache
Create a new Cache
. Internally the Cache
constructor is created using the namespace
function, with
cache
defined as the storage object.
Params
cache
{Object}: Optionally pass an object to initialize with.
Example
var app = new Cache();
.set
Assign value
to key
. Also emits
set
with the key and value.
Params
key
{String}value
{any}returns
{Object}: Returns the instance for chaining.
Events
emits
:set
withkey
andvalue
as arguments.
Example
.on('set', function(key, val) {
app// do something when `set` is emitted
;
})
.set(key, value);
app
// also takes an object or array
.set({name: 'Halle'});
app.set([{foo: 'bar'}, {baz: 'quux'}]);
appconsole.log(app);
//=> {name: 'Halle', foo: 'bar', baz: 'quux'}
.union
Union array
to key
. Also emits
set
with the key and value.
Params
key
{String}value
{any}returns
{Object}: Returns the instance for chaining.
Example
.union('a.b', ['foo']);
app.union('a.b', ['bar']);
appconsole.log(app.get('a'));
//=> {b: ['foo', 'bar']}
.get
Return the value of key
. Dot notation may be used to get
nested property
values.
Params
key
{String}: The name of the property to get. Dot-notation may be used.returns
{any}: Returns the value ofkey
Events
emits
:get
withkey
andvalue
as arguments.
Example
.set('a.b.c', 'd');
app.get('a.b');
app//=> {c: 'd'}
.get(['a', 'b']);
app//=> {c: 'd'}
.has
Return true if app has a stored value for key
, false
only if value is undefined
.
Params
key
{String}returns
{Boolean}
Events
emits
:has
withkey
and true or false as arguments.
Example
.set('foo', 'bar');
app.has('foo');
app//=> true
.del
Delete one or more properties from the instance.
Params
key
{String|Array}: Property name or array of property names.returns
{Object}: Returns the instance for chaining.
Events
emits
:del
with thekey
as the only argument.
Example
.del(); // delete all
app// or
.del('foo');
app// or
.del(['foo', 'bar']); app
.clear
Reset the entire cache to an empty object.
Example
.clear(); app
.visit
Visit method
over the properties in the given object, or
map visit over the object-elements in an array.
Params
method
{String}: The name of thebase
method to call.val
{Object|Array}: The object or array to iterate over.returns
{Object}: Returns the instance for chaining.
About
Related projects
- base-methods: base-methods is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting… more | homepage
- get-value: Use
property paths (
a.b.c
) to get a nested value from an object. | homepage - has-value: Returns true if a value exists, false if empty. Works with deeply nested values using… more | homepage
- option-cache: Simple API for managing options in JavaScript applications. | homepage
- set-value:
Create nested values and any intermediaries using dot notation
(
'a.b.c'
) paths. | homepage - unset-value: Delete nested properties from an object using dot notation. | homepage
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Contributors
Commits | Contributor |
---|---|
54 | jonschlinkert |
2 | wtgtybhertgeghgtwtg |
Building docs
(This project’s readme.md is generated by verb, please don’t edit the readme directly. Any changes to the readme must be made in the .verb.md readme template.)
To generate the readme, run the following command:
$ npm install -g verbose/verb#dev verb-generate-readme && verb
Running tests
Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
$ npm install && npm test
Author
Jon Schlinkert
License
Copyright © 2017, Jon Schlinkert. Released under the MIT License.
This file was generated by verb-generate-readme, v0.6.0, on July 22, 2017.