Socket
Socket
Sign inDemoInstall

memo-cache

Package Overview
Dependencies
1
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    memo-cache

A memoization and caching library for NodeJS


Version published
Maintainers
1
Install size
161 kB
Created

Readme

Source

Node Memoization/Caching Library

Build Status bitHound Dependencies Monthly Downloads NPM version bitHound Score

A memoization and caching library for NodeJS.

Installation

$ npm install memo-cache

Usage

var memoCache = require('memo-cache');

API

####Caching: #####memoCache.cache.create(cacheName, options)

  • cacheName String - name of the cache
  • options Object - options for the cache, specifying any of the following:
    • cloneValues Boolean - should returned values be clones of the original? [Default: false]
    • maxSize Integer - maximum number of keys to store in this cache; if null, then unlimited [Default: null]

Return Value: An object with the following functions to modify the created cache. Please note that these functions do not require the cacheName.

  • set : function (key, value)
  • get : function (key)
  • getAll : function ()
  • exists : function (key)
  • clear : function ()
  • size : function ()
  • options : function ()
var myCache = memoCache.cache.create('myCache');
console.log(myCache);
// Output:
// { set: [Function],     -- function(key, value)
//  get: [Function],      -- function(key)
//  getAll: [Function]    -- function ()
//  exists: [Function],   -- function(key)
//  clear: [Function],    -- function()
//  size: [Function],     -- function()
//  options: [Function] } -- function()

#####memoCache.cache.set(cacheName, key, value)

  • cacheName String - name of the cache
  • key String - key to be used to store the value
  • value Any - value to be stored in the cache

Return Value: If the item is stored, then the stored value is returned, otherwise null is returned.

memoCache.cache.set('myCache', 'isExample', true);
// OR (if using the myCache variable from above):
myCache.set('isExample', true);

#####memoCache.cache.get(cacheName, key)

  • cacheName String - name of the cache
  • key String - key to be used to retrieve the value

Return Value: If there is an item stored at the given key, then the stored value is returned, otherwise null is returned.

memoCache.cache.get('myCache', 'isExample'); // => true
memoCache.cache.get('myCache', 'isNotExample'); // => null
// OR (if using the myCache variable from above):
myCache.get('isExample'); // => true
myCache.get('isNotExample'); // => null

#####memoCache.cache.getAll(cacheName)

  • cacheName String - name of the cache

Return Value: If there are items stored in the cache, they will be returned as a JS document.

memoCache.cache.getAll('myCache'); // => {}
memoCache.cache.get('notAValidCache'); // => null
// OR (if using the myCache variable from above):
myCache.getAll('isExample'); // => {}
myCache.getAll('notAValidCache'); // => null

#####memoCache.cache.remove(cacheName, key)

  • cacheName String - name of the cache
  • key String - key to be deleted

Return Value: If there is an item stored at the given key, then the stored value is returned, otherwise null is returned.

memoCache.cache.remove('myCache', 'isExample'); // => true
memoCache.cache.remove('myCache', 'isNotExample'); // => null
// OR (if using the myCache variable from above):
myCache.remove('isExample'); // => true
myCache.remove('isNotExample'); // => null

#####memoCache.cache.exists(cacheName, key)

  • cacheName String - name of the cache
  • key String - key to be checked

Return Value: If there is an item stored at the given key, then true is returned, otherwise false is returned.

memoCache.cache.exists('myCache', 'isExample'); // => true
memoCache.cache.exists('myCache', 'isNotExample'); // => false
// OR (if using the myCache variable from above):
myCache.exists('isExample'); // => true
myCache.exists('isNotExample'); // => false

#####memoCache.cache.clear(cacheName)

  • cacheName String - name of the cache

Return Value: If the cache is cleared, then true is returned, otherwise false is returned.

memoCache.cache.clear('myCache'); // => true
// OR (if using the myCache variable from above):
myCache.clear(); // => true

#####memoCache.cache.size(cacheName)

  • cacheName String - (optional) name of the cache; If not specified, the size of all caches is returned

Return Value: The size of the cache(s).

memoCache.cache.size('myCache'); // => 1
memoCache.cache.size(); // => 1 
// OR (if using the myCache variable from above):
myCache.size(); // => 1

#####memoCache.cache.options(cacheName)

  • cacheName String - name of the cache

Return Value: If the cache exists, then the options object is returned, otherwise null is returned.

memoCache.cache.options('myCache'); // => { cloneValues: boolean, maxSize: Number, memoHashFunction: Function }
// OR (if using the myCache variable from above):
myCache.options(); // => { cloneValues: boolean, maxSize: Number, memoHashFunction: Function }

####Memoization: #####memoCache.memoize(function, options)

  • cacheName String - name of the cache
  • options Object - options for the cache, specifying any of the following:
  • cloneValues Boolean - should returned values be clones of the original? [Default: false]
  • maxSize Integer - maximum number of keys to store in this cache; if null, then unlimited [Default: null]
  • memoHashFunction Function - used to map the input arguments to a String. The result of this function becomes the key for the function result value
require memoCache = require('memo-cache');
var myFunction = function (aString) { console.log('cache miss!'); return aString; };

var myFunctionMemoized = memoCache.memoize(myFunction, {maxSize: 10});
myFunctionMemoized('testing'); // => 'testing' (Prints 'cache miss!' to the console)
myFunctionMemoized('testing'); // => 'testing' (Does not print 'cache miss!')

Tests

$ npm test

Note: This requires mocha, should, async, and underscore.

Features

  • Cache Functionality via memoCache.cache
  • Can create multiple caches (allowing 'namespaces')
  • Memoization Functionality via memoCache.memoize()
  • Least Recently Used implementation when options.maxSize specified
  • Caching and Memoization included in one module (usually separate)

Keywords

FAQs

Last updated on 27 May 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