cache-base NPM version NPM monthly downloads NPM total downloads Linux Build Status

Basic object cache with get, set, del, and has methods for node.js/javascript projects.

Install

Install with npm:

sh $ npm install --save cache-base

Usage

```js var Cache = require('cache-base');

// instantiate var app = new Cache();

// set values app.set('a', 'b'); app.set('c.d', 'e');

// get values app.get('a'); //=> 'b' app.get('c'); //=> {d: 'e'}

console.log(app.cache); //=> {a: 'b'} ```

Inherit

```js var util = require('util'); var Cache = require('cache-base');

function MyApp() { Cache.call(this); } util.inherits(MyApp, Cache);

var app = new MyApp(); app.set('a', 'b'); app.get('a'); //=> 'b' ```

Namespace

Define a custom property for storing values.

js var Cache = require('cache-base').namespace('data'); var app = new Cache(); app.set('a', 'b'); console.log(app.data); //=> {a: 'b'}

API

namespace

Create a Cache constructor that when instantiated will store values on the given prop.

Params

Example

```js var Cache = require('cache-base').namespace('data'); var cache = new Cache();

cache.set('foo', 'bar'); //=> {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

Example

js var app = new Cache();

.set

Assign value to key. Also emits set with the key and value.

Params

Events

Example

``js app.on('set', function(key, val) { // do something whenset` is emitted });

app.set(key, value);

// also takes an object or array app.set({name: 'Halle'}); app.set([{foo: 'bar'}, {baz: 'quux'}]); console.log(app); //=> {name: 'Halle', foo: 'bar', baz: 'quux'} ```

.union

Union array to key. Also emits set with the key and value.

Params

Example

js app.union('a.b', ['foo']); app.union('a.b', ['bar']); console.log(app.get('a')); //=> {b: ['foo', 'bar']}

.get

Return the value of key. Dot notation may be used to get nested property values.

Params

Events

Example

```js app.set('a.b.c', 'd'); app.get('a.b'); //=> {c: 'd'}

app.get(['a', 'b']); //=> {c: 'd'} ```

.has

Return true if app has a stored value for key, false only if value is undefined.

Params

Events

Example

js app.set('foo', 'bar'); app.has('foo'); //=> true

.del

Delete one or more properties from the instance.

Params

Events

Example

js app.del(); // delete all // or app.del('foo'); // or app.del(['foo', 'bar']);

.clear

Reset the entire cache to an empty object.

Example

js app.clear();

.visit

Visit method over the properties in the given object, or map visit over the object-elements in an array.

Params

About

Related projects

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:

sh $ 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:

sh $ 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.