Socket
Socket
Sign inDemoInstall

cache-base

Package Overview
Dependencies
18
Maintainers
2
Versions
23
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    cache-base

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


Version published
Weekly downloads
11M
decreased by-9.14%
Maintainers
2
Install size
191 kB
Created
Weekly downloads
 

Readme

Source

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.

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

// instantiate
const cache = new Cache();

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

// get values
console.log(cache.get('a'));
//=> 'b'
console.log(cache.get('c'));
//=> { d: 'e' }
console.log(cache);
//=> Cache { a: 'b' }

Initialize with an object

// instantiate
const cache = new Cache({ a: 'b', c: { d: 'e' } });

// get values
console.log(cache.get('a'));
//=> 'b'
console.log(cache.get('c'));
//=> { d: 'e' }
console.log(cache.get('c.d'));
//=> 'e'
console.log(cache);
//=> Cache { a: 'b' }

Inherit

class MyApp extends Cache {}

var cache = new MyApp();
cache.set('a', 'b');
console.log(cache.get('a'));
//=> 'b'

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

// get values
console.log(cache.get('a'));
//=> 'b'
console.log(cache.get('c'));
//=> { d: 'e' }
console.log(cache.data);
//=> { a: 'b', c: { d: 'e' } }
console.log(cache);
//=> Cache { data: { a: 'b', c: { d: 'e' } } }

API

Params

  • cache {Object}: Optionally pass an object to initialize with.

Example

const cache = new Cache();

.set

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) {
  // do something when `set` is emitted
});

cache.set(key, value);

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

.union

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'));
//=> {b: ['foo', 'bar']}

.get

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');
//=> { c: 'd' }

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

.has

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');
//=> true

.del

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(); // delete all
// or
cache.del('foo');
// or
cache.del(['foo', 'bar']);

.visit

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#dev verb-generate-readme && verb

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

CommitsContributor
64jonschlinkert
2wtgtybhertgeghgtwtg

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.

Keywords

FAQs

Last updated on 19 Dec 2017

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc