lodash.memoize
Advanced tools
Comparing version 3.0.4 to 3.1.0
136
index.js
/** | ||
* lodash 3.0.4 (Custom Build) <https://lodash.com/> | ||
* Build: `lodash modern modularize exports="npm" -o ./` | ||
* Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/> | ||
* lodash 3.1.0 (Custom Build) <https://lodash.com/> | ||
* Build: `lodash modularize exports="npm" -o ./` | ||
* Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/> | ||
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> | ||
* Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors | ||
* Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors | ||
* Available under MIT license <https://lodash.com/license> | ||
*/ | ||
var MapCache = require('lodash._mapcache'); | ||
@@ -13,88 +14,13 @@ /** Used as the `TypeError` message for "Functions" methods. */ | ||
/** Used for native method references. */ | ||
var objectProto = Object.prototype; | ||
/** Used to check objects for own properties. */ | ||
var hasOwnProperty = objectProto.hasOwnProperty; | ||
/** | ||
* Creates a cache object to store key/value pairs. | ||
* | ||
* @private | ||
* @static | ||
* @name Cache | ||
* @memberOf _.memoize | ||
*/ | ||
function MapCache() { | ||
this.__data__ = {}; | ||
} | ||
/** | ||
* Removes `key` and its value from the cache. | ||
* | ||
* @private | ||
* @name delete | ||
* @memberOf _.memoize.Cache | ||
* @param {string} key The key of the value to remove. | ||
* @returns {boolean} Returns `true` if the entry was removed successfully, else `false`. | ||
*/ | ||
function mapDelete(key) { | ||
return this.has(key) && delete this.__data__[key]; | ||
} | ||
/** | ||
* Gets the cached value for `key`. | ||
* | ||
* @private | ||
* @name get | ||
* @memberOf _.memoize.Cache | ||
* @param {string} key The key of the value to get. | ||
* @returns {*} Returns the cached value. | ||
*/ | ||
function mapGet(key) { | ||
return key == '__proto__' ? undefined : this.__data__[key]; | ||
} | ||
/** | ||
* Checks if a cached value for `key` exists. | ||
* | ||
* @private | ||
* @name has | ||
* @memberOf _.memoize.Cache | ||
* @param {string} key The key of the entry to check. | ||
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. | ||
*/ | ||
function mapHas(key) { | ||
return key != '__proto__' && hasOwnProperty.call(this.__data__, key); | ||
} | ||
/** | ||
* Sets `value` to `key` of the cache. | ||
* | ||
* @private | ||
* @name set | ||
* @memberOf _.memoize.Cache | ||
* @param {string} key The key of the value to cache. | ||
* @param {*} value The value to cache. | ||
* @returns {Object} Returns the cache object. | ||
*/ | ||
function mapSet(key, value) { | ||
if (key != '__proto__') { | ||
this.__data__[key] = value; | ||
} | ||
return this; | ||
} | ||
/** | ||
* Creates a function that memoizes the result of `func`. If `resolver` is | ||
* provided it determines the cache key for storing the result based on the | ||
* arguments provided to the memoized function. By default, the first argument | ||
* provided to the memoized function is coerced to a string and used as the | ||
* cache key. The `func` is invoked with the `this` binding of the memoized | ||
* function. | ||
* provided to the memoized function is used as the map cache key. The `func` | ||
* is invoked with the `this` binding of the memoized function. | ||
* | ||
* **Note:** The cache is exposed as the `cache` property on the memoized | ||
* function. Its creation may be customized by replacing the `_.memoize.Cache` | ||
* constructor with one whose instances implement the [`Map`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-properties-of-the-map-prototype-object) | ||
* method interface of `get`, `has`, and `set`. | ||
* constructor with one whose instances implement the [`Map`](http://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-map-prototype-object) | ||
* method interface of `delete`, `get`, `has`, and `set`. | ||
* | ||
@@ -109,31 +35,23 @@ * @static | ||
* | ||
* var upperCase = _.memoize(function(string) { | ||
* return string.toUpperCase(); | ||
* }); | ||
* var object = { 'a': 1, 'b': 2 }; | ||
* var other = { 'c': 3, 'd': 4 }; | ||
* | ||
* upperCase('fred'); | ||
* // => 'FRED' | ||
* var values = _.memoize(_.values); | ||
* values(object); | ||
* // => [1, 2] | ||
* | ||
* values(other); | ||
* // => [3, 4] | ||
* | ||
* object.a = 2; | ||
* values(object); | ||
* // => [1, 2] | ||
* | ||
* // modifying the result cache | ||
* upperCase.cache.set('fred', 'BARNEY'); | ||
* upperCase('fred'); | ||
* // => 'BARNEY' | ||
* values.cache.set(object, ['a', 'b']); | ||
* values(object); | ||
* // => ['a', 'b'] | ||
* | ||
* // replacing `_.memoize.Cache` | ||
* var object = { 'user': 'fred' }; | ||
* var other = { 'user': 'barney' }; | ||
* var identity = _.memoize(_.identity); | ||
* | ||
* identity(object); | ||
* // => { 'user': 'fred' } | ||
* identity(other); | ||
* // => { 'user': 'fred' } | ||
* | ||
* _.memoize.Cache = WeakMap; | ||
* var identity = _.memoize(_.identity); | ||
* | ||
* identity(object); | ||
* // => { 'user': 'fred' } | ||
* identity(other); | ||
* // => { 'user': 'barney' } | ||
*/ | ||
@@ -160,8 +78,2 @@ function memoize(func, resolver) { | ||
// Add functions to the `Map` cache. | ||
MapCache.prototype['delete'] = mapDelete; | ||
MapCache.prototype.get = mapGet; | ||
MapCache.prototype.has = mapHas; | ||
MapCache.prototype.set = mapSet; | ||
// Assign cache to `_.memoize`. | ||
@@ -168,0 +80,0 @@ memoize.Cache = MapCache; |
{ | ||
"name": "lodash.memoize", | ||
"version": "3.0.4", | ||
"description": "The modern build of lodash’s `_.memoize` as a module.", | ||
"version": "3.1.0", | ||
"description": "The lodash method `_.memoize` exported as a module.", | ||
"homepage": "https://lodash.com/", | ||
"icon": "https://lodash.com/icon.svg", | ||
"license": "MIT", | ||
"keywords": "lodash, lodash-modularized, stdlib, util", | ||
"keywords": "lodash, lodash-modularized, stdlib, util, memoize", | ||
"author": "John-David Dalton <john.david.dalton@gmail.com> (http://allyoucanleet.com/)", | ||
"contributors": [ | ||
"John-David Dalton <john.david.dalton@gmail.com> (http://allyoucanleet.com/)", | ||
"Benjamin Tan <demoneaux@gmail.com> (https://d10.github.io/)", | ||
"Blaine Bublitz <blaine@iceddev.com> (http://www.iceddev.com/)", | ||
"Kit Cambridge <github@kitcambridge.be> (http://kitcambridge.be/)", | ||
"Blaine Bublitz <blaine@iceddev.com> (https://github.com/phated)", | ||
"Mathias Bynens <mathias@qiwi.be> (https://mathiasbynens.be/)" | ||
], | ||
"repository": "lodash/lodash", | ||
"scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" } | ||
"scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" }, | ||
"dependencies": { | ||
"lodash._mapcache": "^3.0.0" | ||
} | ||
} |
@@ -1,4 +0,4 @@ | ||
# lodash.memoize v3.0.4 | ||
# lodash.memoize v3.1.0 | ||
The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.memoize` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module. | ||
The [lodash](https://lodash.com/) method `_.memoize` exported as a [Node.js](https://nodejs.org/) module. | ||
@@ -8,3 +8,2 @@ ## Installation | ||
Using npm: | ||
```bash | ||
@@ -15,4 +14,3 @@ $ {sudo -H} npm i -g npm | ||
In Node.js/io.js: | ||
In Node.js: | ||
```js | ||
@@ -22,2 +20,2 @@ var memoize = require('lodash.memoize'); | ||
See the [documentation](https://lodash.com/docs#memoize) or [package source](https://github.com/lodash/lodash/blob/3.0.4-npm-packages/lodash.memoize) for more details. | ||
See the [documentation](https://lodash.com/docs#memoize) or [package source](https://github.com/lodash/lodash/blob/3.1.0-npm-packages/lodash.memoize) for more details. |
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
5129
1
74
19
+ Addedlodash._mapcache@^3.0.0