cache-base
Basic object cache with get
, set
, del
, and has
methods for node.js/javascript projects.
Please consider following this project's author, Jon Schlinkert, and consider starring the project to show your :heart: and support.
Install
Install with npm:
$ npm install --save cache-base
Usage
const Cache = require('cache-base');
Instantiate
const cache = new Cache();
cache.set('a', 'b');
cache.set('c.d', 'e');
console.log(cache.get('a'));
console.log(cache.get('c'));
console.log(cache);
Initialize with an object
const cache = new Cache({ a: 'b', c: { d: 'e' } });
console.log(cache.get('a'));
console.log(cache.get('c'));
console.log(cache.get('c.d'));
console.log(cache);
Inherit
class MyApp extends Cache {}
var cache = new MyApp();
cache.set('a', 'b');
console.log(cache.get('a'));
Custom namespace
Define a custom property name for storing values. By default, values are stored directly on the instance (for example, when cache.set('foo', 'bar')
is used, cache.foo
would be bar
).
const Cache = require('cache-base');
const cache = new Cache('data', { a: 'b' });
cache.set('c.d', 'e');
console.log(cache.get('a'));
console.log(cache.get('c'));
console.log(cache.data);
console.log(cache);
API
Params
cache
{Object}: Optionally pass an object to initialize with.
Example
const cache = new Cache();
Assign value
to key
. Also emits set
with the key and value.
Params
key
{String|Array}: The name of the property to set. Dot-notation or an array of object path segments may be used.value
{any}returns
{Object}: Returns the instance for chaining.
Events
emits
: set
with key
and value
as arguments.
Example
cache.on('set', function(key, val) {
});
cache.set(key, value);
cache.set({name: 'Halle'});
cache.set([{foo: 'bar'}, {baz: 'quux'}]);
console.log(cache);
Union array
to key
. Also emits set
with the key and value.
Params
key
{String|Array}: The name of the property to union. Dot-notation or an array of object path segments may be used.value
{any}returns
{Object}: Returns the instance for chaining.
Example
cache.union('a.b', ['foo']);
cache.union('a.b', ['bar']);
console.log(cache.get('a'));
Return the value of key
. Dot notation may be used to get nested property values.
Params
key
{String|Array}: The name of the property to get. Dot-notation or an array of object path segments may be used.returns
{any}: Returns the value of key
Events
emits
: get
with key
and value
as arguments.
Example
cache.set('a.b.c', 'd');
cache.get('a.b');
cache.get(['a', 'b']);
Return true if cache has a stored value for key
, false only if value is undefined
.
Params
key
{String|Array}: The name of the property to check. Dot-notation or an array of object path segments may be used.returns
{Boolean}
Events
emits
: has
with key
and true or false as arguments.
Example
cache.set('foo', 'bar');
cache.has('foo');
Delete one or more properties from the instance.
Params
key
{String|Array}: The name of the property to delete. Dot-notation or an array of object path segments may be used.returns
{Object}: Returns the instance for chaining.
Events
emits
: del
with the key
as the only argument.
Example
cache.del();
cache.del('foo');
cache.del(['foo', 'bar']);
Visit method
over the properties in the given object, or map
visit over the object-elements in an array.
Params
key
{String|Array}: The name of the method to visit. Dot-notation or an array of object path segments may be used.val
{Object|Array}: The object or array to iterate over.returns
{Object}: Returns the instance for chaining.
Example
cache.clear();
About
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
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
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
Related projects
You might also be interested in these 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
Contributors
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 December 19, 2017.