Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

cache-manager

Package Overview
Dependencies
Maintainers
1
Versions
110
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cache-manager - npm Package Compare versions

Comparing version 0.5.0 to 0.6.0

50

examples/redis_example/example.js

@@ -6,2 +6,3 @@ // Setup:

var util = require('util');
var cache_manager = require('../../');

@@ -11,2 +12,3 @@ var redis_store = require('./redis_store');

console.log("set/get/del example:");
redis_cache.set('foo', 'bar', function (err) {

@@ -16,11 +18,20 @@ if (err) { throw err; }

redis_cache.get('foo', function (err, result) {
console.log(result);
if (err) { throw err; }
console.log("result fetched from cache: " + result);
// >> 'bar'
redis_cache.del('foo', function (err) { console.log(err); });
redis_cache.del('foo', function (err) {
if (err) { throw err; }
});
});
});
var user_id = 123;
function create_key(id) {
return 'user_' + id;
}
function get_user(id, cb) {
setTimeout(function () {
console.log("Returning user from slow database.");
console.log("\n\nReturning user from slow database.");
cb(null, {id: id, name: 'Bob'});

@@ -30,16 +41,26 @@ }, 100);

var user_id = 123;
var key = 'user_' + user_id;
function get_user_from_cache(id, cb) {
var key = create_key(id);
redis_cache.wrap(key, function (cache_cb) {
get_user(user_id, cache_cb);
}, cb);
}
redis_cache.wrap(key, function (cb) {
get_user(user_id, cb);
}, function (err, user) {
get_user_from_cache(user_id, function (err, user) {
console.log(user);
// Second time fetches user from redis_cache
redis_cache.wrap(key, function (cb) {
get_user(user_id, cb);
}, function (err, user) {
// Second time fetches user from redis_cache
get_user_from_cache(user_id, function (err, user) {
console.log("user from second cache request:");
console.log(user);
process.exit();
redis_cache.keys(function (err, keys) {
console.log("keys: " + util.inspect(keys));
var key = create_key(user_id);
redis_cache.del(key, function (err) {
if (err) { throw err; }
process.exit();
});
});
});

@@ -49,4 +70,5 @@ });

// Outputs:
// Returning user from slow database.
// { id: 123, name: 'Bob' }
// user from second cache request:
// { id: 123, name: 'Bob' }
// keys: [ 'user_123' ]

@@ -78,6 +78,22 @@ /**

self.keys = function (pattern, cb) {
if (typeof pattern === 'function') {
cb = pattern;
pattern = '*';
}
connect(function (err, conn) {
if (err) { return cb(err); }
conn.keys(pattern, function (err, result) {
pool.release(conn);
cb(err, result);
});
});
};
return self;
}
var methods = {
module.exports = {
create: function (args) {

@@ -87,3 +103,1 @@ return redis_store(args);

};
module.exports = methods;

@@ -0,1 +1,6 @@

- 0.6.0 2014-06-15
Adding caching.keys() function (issue #6)
Updating examples/redis_example/example.js with cache.keys() usage
Allow calling memory store get() without callback
- 0.5.0 2014-05-02

@@ -2,0 +7,0 @@ Adding reset() function to caching.js. Closes #5.

@@ -0,1 +1,2 @@

/*jshint maxcomplexity:10*/
var caching = function (args) {

@@ -64,2 +65,6 @@ args = args || {};

if (typeof self.store.keys === 'function') {
self.keys = self.store.keys.bind(self.store);
}
return self;

@@ -66,0 +71,0 @@ };

@@ -23,5 +23,10 @@ var Lru = require("lru-cache");

self.get = function (key, cb) {
process.nextTick(function () {
cb(null, lru_cache.get(key));
});
var value = lru_cache.get(key);
if (cb) {
process.nextTick(function () {
cb(null, value);
});
} else {
return value;
}
};

@@ -43,2 +48,13 @@

self.keys = function (cb) {
var keys = lru_cache.keys();
if (cb) {
process.nextTick(function () {
cb(null, keys);
});
} else {
return keys;
}
};
return self;

@@ -45,0 +61,0 @@ };

{
"name": "cache-manager",
"version": "0.5.0",
"version": "0.6.0",
"description": "Cache module for Node.js",

@@ -5,0 +5,0 @@ "main": "index.js",

// TODO: These are really a mix of unit and integration tests.
var assert = require('assert');
var async = require('async');
var sinon = require('sinon');

@@ -42,9 +43,8 @@ var support = require('./support');

it("lets us set data without a callback", function (done) {
it("lets us set and get data without a callback", function (done) {
cache.set(key, value);
setTimeout(function () {
cache.get(key, function (err, result) {
assert.equal(result, value);
done();
});
var result = cache.get(key);
assert.equal(result, value);
done();
}, 20);

@@ -117,3 +117,3 @@ });

cache.set(key, value, done);
cache.set(key2, value2, done);
});

@@ -137,3 +137,3 @@ });

it("lets us clear the cache without a callback", function (done) {
it("lets us clear the cache without a callback (memory store only)", function (done) {
cache.reset();

@@ -153,2 +153,39 @@ setTimeout(function () {

describe("keys()", function () {
var key_count;
var saved_keys = [];
beforeEach(function (done) {
key_count = 10;
var processed = 0;
cache = caching({store: 'memory'});
function is_done() {
return processed === key_count;
}
async.until(is_done, function (cb) {
processed += 1;
key = support.random.string(20);
saved_keys.push(key);
value = support.random.string();
cache.set(key, value, cb);
}, done);
});
it("calls back with all keys in cache", function (done) {
cache.keys(function (err, keys) {
check_err(err);
assert.deepEqual(keys.sort, saved_keys.sort);
done();
});
});
it("lets us get the keys without a callback (memory store only)", function () {
var keys = cache.keys();
assert.deepEqual(keys.sort, saved_keys.sort);
});
});
describe("wrap()", function () {

@@ -173,3 +210,3 @@ describe("using memory (lru-cache) store", function () {

it("calls back with the result of a function", function (done) {
it("calls back with the result of the wrapped function", function (done) {
cache.wrap(key, function (cb) {

@@ -176,0 +213,0 @@ methods.get_widget(name, cb);

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc