Comparing version 4.1.0 to 4.2.0
33
index.js
@@ -8,9 +8,9 @@ 'use strict'; | ||
const defaultCacheKey = (...args) => { | ||
if (args.length === 0) { | ||
const defaultCacheKey = (...arguments_) => { | ||
if (arguments_.length === 0) { | ||
return '__defaultKey'; | ||
} | ||
if (args.length === 1) { | ||
const [firstArgument] = args; | ||
if (arguments_.length === 1) { | ||
const [firstArgument] = arguments_; | ||
if ( | ||
@@ -25,6 +25,6 @@ firstArgument === null || | ||
return JSON.stringify(args); | ||
return JSON.stringify(arguments_); | ||
}; | ||
module.exports = (fn, options) => { | ||
const mem = (fn, options) => { | ||
options = Object.assign({ | ||
@@ -50,21 +50,19 @@ cacheKey: defaultCacheKey, | ||
const memoized = function (...args) { | ||
const key = options.cacheKey(...args); | ||
const memoized = function (...arguments_) { | ||
const key = options.cacheKey(...arguments_); | ||
if (cache.has(key)) { | ||
const c = cache.get(key); | ||
return c.data; | ||
return cache.get(key).data; | ||
} | ||
const ret = fn.call(this, ...args); | ||
const cacheItem = fn.call(this, ...arguments_); | ||
setData(key, ret); | ||
setData(key, cacheItem); | ||
if (isPromise(ret) && options.cachePromiseRejection === false) { | ||
if (isPromise(cacheItem) && options.cachePromiseRejection === false) { | ||
// Remove rejected promises from cache unless `cachePromiseRejection` is set to `true` | ||
ret.catch(() => cache.delete(key)); | ||
cacheItem.catch(() => cache.delete(key)); | ||
} | ||
return ret; | ||
return cacheItem; | ||
}; | ||
@@ -83,2 +81,5 @@ | ||
module.exports = mem; | ||
module.exports.default = mem; | ||
module.exports.clear = fn => { | ||
@@ -85,0 +86,0 @@ const cache = cacheStore.get(fn); |
{ | ||
"name": "mem", | ||
"version": "4.1.0", | ||
"version": "4.2.0", | ||
"description": "Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input", | ||
@@ -16,6 +16,7 @@ "license": "MIT", | ||
"scripts": { | ||
"test": "xo && ava" | ||
"test": "xo && ava && tsd-check" | ||
}, | ||
"files": [ | ||
"index.js" | ||
"index.js", | ||
"index.d.ts" | ||
], | ||
@@ -37,10 +38,11 @@ "keywords": [ | ||
"map-age-cleaner": "^0.1.1", | ||
"mimic-fn": "^1.0.0", | ||
"mimic-fn": "^2.0.0", | ||
"p-is-promise": "^2.0.0" | ||
}, | ||
"devDependencies": { | ||
"ava": "^1.0.1", | ||
"ava": "^1.3.1", | ||
"delay": "^4.1.0", | ||
"xo": "^0.23.0" | ||
"tsd-check": "^0.3.0", | ||
"xo": "^0.24.0" | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
9439
5
132
4
+ Addedmimic-fn@2.1.0(transitive)
- Removedmimic-fn@1.2.0(transitive)
Updatedmimic-fn@^2.0.0