Socket
Socket
Sign inDemoInstall

docvy-cache

Package Overview
Dependencies
18
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    docvy-cache

The Docvy Cache


Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Install size
1.14 MB
Created
Weekly downloads
 

Readme

Source

docvy-cache

An in-memory cache capable of being swapped from and to disk. For Node.js applications.

node npm Travis Gemnasium Coveralls

table of contents:

  1. example usage
  2. cache API
  3. installation
  4. todo
  5. license

example usage:

// the module returns a Cache constructor
var Cache = require("docvy-cache");

// also this returns a Cache constructor
var CacheConstructor = Cache.Cache;

// create a new cache
var cache = new Cache({
  maxAge: 1209600000, // in milliseconds
  cacheDir: __dirname + "/cache", // where to swap from/to disk
  waitForRestore: true // wait for restoration to complete before any query
});

/**
* All these operations are asynchronous. You might need to structure
* your calls to the cache better
*/

// restore cache
cache.restore(function(err) {
  if (err) { return console.log("could not RESTORE"); }
  return console.log("RESTORED");
});

// setting an item
cache.set("appName", "docvy-app", function(err) {
  if (err) { return console.log("could not SET"); }
  return console.log("SET");
});

// getting the item
cache.get("appName", function(err, val) {
  if (err) { return console.log("could not GET"); }
  return console.log("GOT: " + val);
});

// removing the item
cache.unset("appName", function(err) {
  if (err) { return console.log("could not UNSET"); }
  return console.log("UNSET");
});

// saving cache
cache.save(function(err) {
  if (err) { return console.log("could not SAVE"); }
  return console.log("SAVED");
});

// refreshing cache incase we had old items
cache.refresh(function(err) {
  if (err) { return console.log("could not REFRESH"); }
  return console.log("REFRESHED");
});

// we no longer need the cache?
cache.destroy(function(err) {
  if (err) { return console.log("could not DESTROY"); }
  return console.log("DESTROYED");
});

API

Cache([options])

This is the constructor for a Cache.

  • options (Object):
    • cacheDir (String): path to a directory where cache items can be saved to
    • maxAge (Number): maximum amount of time to keep an item, in milliseconds
    • waitForRestore (Boolean): whether to wait for cache to be restored before executing any queries.

cache.restore([done])

Restores the cache from its directory, as specified in cacheDir during instantiation.

  • done (Function): other than a possible error is passed to the callback.

In case you had already saved a cache, you can restore it.

cache.save([done])

Saves the cache to its directory.

  • done (Function): other than a possible error is passed to the callback.

cache.set(key, value [, options] [, done])

Sets an Item

  • key (String): key of the item
  • value (String): value of the item
  • options (Object):
    • maxAge: a custom maxAge for this item. NOTE: this value is ignored for items already set into cache. It is only respected if its a new item being set.
  • done (Function): function called once query is complete. Other than a possible error is passed to the callback.

cache.get(key, callback)

Returns value of item.

  • key (String): key of the item
  • callback (Function): function passed the value of item.
    • signature: callback(err, value)

cache.unset(key [, done])

Removes an item from cache.

  • key (String): key of the item
  • done (Function): function called once query is complete. Other than a possible error is passed.

cache.refresh([done])

Refreshes cache by removing expired items. All keys are checked to ensure they have not lived past their expiry time.

  • done (Function): called once cache refreshing is complete. Other than a possible error is passed.

cache.destroy([done])

Destroys the entire cache both from in-memory and file-system.

  • done (Function): function called once destroying cache is complete. Other than a possible error is passed.

installation:

(Bleeding Edge) Installing from github using npm:

⇒ npm install docvy-cache

todo:

  • test for memory leaks
  • get estimate size of cache
  • allow setting ttl (time to live) for items
  • clearing of expired items
    • manual  cache.refresh
    • automated
  • allow clearing/emptying of cache  cache.destroy
  • use promises
  • analyse performance against other in-memory Node.js caches

license:

The MIT License (MIT)

Copyright (c) 2015 Forfuture we@forfuture.co.ke
Copyright (c) 2015 GochoMugo mugo@forfuture.co.ke

Keywords

FAQs

Last updated on 05 Aug 2015

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