cache-base

Basic object cache with get, set, del, and has 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
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

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.

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

API

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 custom Cache constructor

Example

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

cache.set('foo', 'bar');
//=> {data: {foo: 'bar'}}

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();

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 with key and value as arguments.

Example

app.on('set', function(key, val) {
  // do something when `set` 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 array to key. Also emits set with the key and value.

Params

  • key {String}

  • value {any}

  • returns {Object}: Returns the instance for chaining.

Example

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

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 of key

Events

  • emits: get with key and value as arguments.

Example

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

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

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

Params

  • key {String}

  • returns {Boolean}

Events

  • emits: has with key and true or false as arguments.

Example

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

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 the key as the only argument.

Example

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

Reset the entire cache to an empty object.

Example

app.clear();

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 the base method to call.

  • val {Object|Array}: The object or array to iterate over.

  • returns {Object}: Returns the instance for chaining.

About

  • 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

2

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.

Last updated