Browse Source

Allow passing in a promise dependency

develop
Sidhartha Chatterjee 9 years ago
parent
commit
d6f8c67580
  1. 1
      .jshintrc
  2. 2
      lib/caching.js
  3. 2
      lib/multi_caching.js
  4. 1
      lib/stores/memory.js
  5. 4
      test/caching.unit.js
  6. 8
      test/multi_caching.unit.js
  7. 4
      test/run.js

1
.jshintrc

@ -20,7 +20,6 @@
"predef" : [ // Extra globals.
"__dirname",
"Promise",
"Buffer",
"event",
"exports",

2
lib/caching.js

@ -29,6 +29,8 @@ var caching = function(args) {
// do we handle a cache error the same as a cache miss?
self.ignoreCacheErrors = args.ignoreCacheErrors || false;
var Promise = args.promiseDependency || global.Promise;
var callbackFiller = new CallbackFiller();
if (typeof args.isCacheableValue === 'function') {

2
lib/multi_caching.js

@ -19,6 +19,8 @@ var multiCaching = function(caches, options) {
var self = {};
options = options || {};
var Promise = options.promiseDependency || global.Promise;
if (!Array.isArray(caches)) {
throw new Error('multiCaching requires an array of caches');
}

1
lib/stores/memory.js

@ -4,6 +4,7 @@ var memoryStore = function(args) {
args = args || {};
var self = {};
self.name = 'memory';
var Promise = args.promiseDependency || global.Promise;
self.usePromises = (typeof Promise === 'undefined' || args.noPromises) ? false : true;
var ttl = args.ttl;

4
test/caching.unit.js

@ -8,6 +8,8 @@ var checkErr = support.checkErr;
var caching = require('../index').caching;
var memoryStore = require('../lib/stores/memory');
var Promise = require('es6-promise').Promise;
var methods = {
getWidget: function(name, cb) {
process.nextTick(function() {
@ -27,7 +29,7 @@ describe("caching", function() {
['memory'].forEach(function(store) {
context("using " + store + " store", function() {
beforeEach(function() {
cache = caching({store: store});
cache = caching({store: store, promiseDependency: Promise});
key = support.random.string(20);
value = support.random.string();
});

8
test/multi_caching.unit.js

@ -7,6 +7,8 @@ var caching = require('../index').caching;
var multiCaching = require('../index').multiCaching;
var memoryStore = require('../lib/stores/memory');
var Promise = require('es6-promise').Promise;
var methods = {
getWidget: function(name, cb) {
process.nextTick(function() {
@ -29,9 +31,9 @@ describe("multiCaching", function() {
memoryTtl = 0.1;
defaultTtl = 5;
memoryCache = caching({store: 'memory', ttl: memoryTtl});
memoryCache2 = caching({store: 'memory', ttl: memoryTtl});
memoryCache3 = caching({store: 'memory', ttl: memoryTtl});
memoryCache = caching({store: 'memory', ttl: memoryTtl, promiseDependency: Promise});
memoryCache2 = caching({store: 'memory', ttl: memoryTtl, promiseDependency: Promise});
memoryCache3 = caching({store: 'memory', ttl: memoryTtl, promiseDependency: Promise});
key = support.random.string(20);
name = support.random.string();

4
test/run.js

@ -6,10 +6,6 @@ var Mocha = require('mocha');
var optimist = require('optimist');
var walkDir = require('./support').walkDir;
if (typeof Promise === "undefined") {
global.Promise = require('es6-promise').Promise;
}
var argv = optimist
.usage("Usage: $0 -t [types] --reporter [reporter] --timeout [timeout]")['default'](
{types: 'unit,functional', reporter: 'spec', timeout: 6000})

Loading…
Cancel
Save