{"_id":"lru-memoize","_rev":"12-28add21fe45e866f7bc3241b09639dec","name":"lru-memoize","description":"A utility to provide lru memoization for any js function","dist-tags":{"latest":"1.1.0"},"versions":{"0.0.1":{"name":"lru-memoize","version":"0.0.1","description":"A utility to provide lru memoization for any js function","main":"./lib/index.js","repository":{"type":"git","url":"git+https://github.com/erikras/lru-memoize.git"},"scripts":{"browser":"scripts/browser","build":"scripts/build","clean":"scripts/clean","lint":"scripts/lint","prepublish":"scripts/prepublish","test":"scripts/test"},"keywords":["memoize","cache","caching","es7","decorator"],"author":{"name":"Erik Rasmussen","email":"rasmussenerik@gmail.com","url":"http://github.com/erikras"},"license":"MIT","bugs":{"url":"https://github.com/erikras/lru-memoize/issues"},"homepage":"https://github.com/erikras/lru-memoize","devDependencies":{"babel":"^5.8.19","babel-core":"^5.8.19","babel-eslint":"^4.0.5","babel-loader":"^5.3.2","eslint":"^0.24.1","eslint-config-airbnb":"0.0.6","expect":"^1.6.0","mocha":"^2.2.5","rifraf":"^2.0.2","rimraf":"^2.4.2","webpack":"^1.10.5"},"gitHead":"5e034864fe563544cd1e18f4532b0264d8587405","_id":"lru-memoize@0.0.1","_shasum":"67519fa2e65084b76516ffd8669f437fc2323d18","_from":".","_npmVersion":"2.10.1","_nodeVersion":"0.10.32","_npmUser":{"name":"erikras","email":"rasmussenerik@gmail.com"},"maintainers":[{"name":"erikras","email":"rasmussenerik@gmail.com"}],"dist":{"shasum":"67519fa2e65084b76516ffd8669f437fc2323d18","tarball":"https://registry.npmjs.org/lru-memoize/-/lru-memoize-0.0.1.tgz","integrity":"sha512-F6kBcNAaNcfk5e811CvhifJ8Or0TyaoO+4ucfRn2E+56IxNBu0nz91IHko9cY7B5inP411FlGYcP9myVwiyeig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjBuL7V5sJf6vgxxfyFQeOlNeTwYyfggDc8t1wCUmSQAIgEqccDe9RS6cpFgpEATmupxD4fOti8YUvZen+BXrW5oE="}]},"directories":{}},"0.0.2":{"name":"lru-memoize","version":"0.0.2","description":"A utility to provide lru memoization for any js function","main":"./lib/index.js","repository":{"type":"git","url":"git+https://github.com/erikras/lru-memoize.git"},"scripts":{"browser":"scripts/browser","build":"scripts/build","clean":"scripts/clean","lint":"scripts/lint","prepublish":"scripts/prepublish","test":"scripts/test"},"keywords":["memoize","cache","caching","es7","decorator"],"author":{"name":"Erik Rasmussen","email":"rasmussenerik@gmail.com","url":"http://github.com/erikras"},"license":"MIT","bugs":{"url":"https://github.com/erikras/lru-memoize/issues"},"homepage":"https://github.com/erikras/lru-memoize","devDependencies":{"babel":"^5.8.19","babel-core":"^5.8.19","babel-eslint":"^4.0.5","babel-loader":"^5.3.2","eslint":"^0.24.1","eslint-config-airbnb":"0.0.6","expect":"^1.6.0","mocha":"^2.2.5","rifraf":"^2.0.2","rimraf":"^2.4.2","webpack":"^1.10.5"},"gitHead":"5ca939dfebcbc5058eb10726c061336d63324407","_id":"lru-memoize@0.0.2","_shasum":"1e2d0d0307d2c4b2c00a42bdc090ac995aa99dd8","_from":".","_npmVersion":"2.10.1","_nodeVersion":"0.10.32","_npmUser":{"name":"erikras","email":"rasmussenerik@gmail.com"},"maintainers":[{"name":"erikras","email":"rasmussenerik@gmail.com"}],"dist":{"shasum":"1e2d0d0307d2c4b2c00a42bdc090ac995aa99dd8","tarball":"https://registry.npmjs.org/lru-memoize/-/lru-memoize-0.0.2.tgz","integrity":"sha512-hpQZHcujTJVHNOpRagwMROtI1SqQKB/dDuwCIeoWMc5D0QU2pJy0WPlj7AaAgd2E0L098xkyj4rgOi3+pl5FVg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEmoa3FX4RRxcpzg5WuDxZXcmpNNR+wTloVvk1aeFau7AiEAtwTvAJKzPEM6rMDnUdo/io8OLWlrWn4vM6vy78X8RqA="}]},"directories":{}},"1.0.0":{"name":"lru-memoize","version":"1.0.0","description":"A utility to provide lru memoization for any js function","main":"./lib/index.js","repository":{"type":"git","url":"git+https://github.com/erikras/lru-memoize.git"},"scripts":{"browser":"scripts/browser","build":"scripts/build","clean":"scripts/clean","lint":"scripts/lint","prepublish":"scripts/prepublish","test":"scripts/test"},"keywords":["memoize","cache","caching","es7","decorator"],"author":{"name":"Erik Rasmussen","email":"rasmussenerik@gmail.com","url":"http://github.com/erikras"},"license":"MIT","bugs":{"url":"https://github.com/erikras/lru-memoize/issues"},"homepage":"https://github.com/erikras/lru-memoize","devDependencies":{"babel":"^5.8.19","babel-core":"^5.8.19","babel-eslint":"^4.0.5","babel-loader":"^5.3.2","eslint":"^0.24.1","eslint-config-airbnb":"0.0.6","expect":"^1.6.0","mocha":"^2.2.5","rifraf":"^2.0.2","rimraf":"^2.4.2","webpack":"^1.10.5"},"gitHead":"e6bf2bf75f9868f1f4294722b97811b9a0cf62b3","_id":"lru-memoize@1.0.0","_shasum":"6735dd48a0ba419fd1fb04d6463f714abaa3cdad","_from":".","_npmVersion":"2.10.1","_nodeVersion":"0.10.32","_npmUser":{"name":"erikras","email":"rasmussenerik@gmail.com"},"maintainers":[{"name":"erikras","email":"rasmussenerik@gmail.com"}],"dist":{"shasum":"6735dd48a0ba419fd1fb04d6463f714abaa3cdad","tarball":"https://registry.npmjs.org/lru-memoize/-/lru-memoize-1.0.0.tgz","integrity":"sha512-+oyY4OC8FE0fsPr5dI5BbjENZyr1XZseVZbNHxEUTI7OoIHQ6RMf+hLWa4fqpardLLA9u7MfcCsxxuHvUuGNjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCyXjAF4LnN2SO0evDTJ1OwEQWb4IzGO9g0twA02MGtVgIhAJyY+xwg7gboUfJsJZP2YQp+hf8rcTQslcSD059rY+rB"}]},"directories":{}},"1.0.1":{"name":"lru-memoize","version":"1.0.1","description":"A utility to provide lru memoization for any js function","main":"./lib/index.js","repository":{"type":"git","url":"git+https://github.com/erikras/lru-memoize.git"},"scripts":{"build":"npm run build:lib && npm run build:umd && npm run build:umd:min","build:lib":"babel src --out-dir lib","build:umd":"webpack src/index.js dist/lru-memoize.js --config webpack.config.development.js","build:umd:min":"webpack src/index.js dist/lru-memoize.min.js --config webpack.config.production.js","clean":"rimraf dist lib","lint":"eslint src","prepublish":"npm run lint && npm run test && npm run clean && npm run build","test":"mocha --compilers js:babel/register --recursive"},"keywords":["memoize","cache","caching","es7","decorator"],"author":{"name":"Erik Rasmussen","email":"rasmussenerik@gmail.com","url":"http://github.com/erikras"},"license":"MIT","bugs":{"url":"https://github.com/erikras/lru-memoize/issues"},"homepage":"https://github.com/erikras/lru-memoize","devDependencies":{"babel":"^5.8.23","babel-core":"^5.8.25","babel-eslint":"^4.1.6","babel-loader":"^5.3.2","eslint":"^1.10.3","eslint-config-airbnb":"0.1.0","eslint-plugin-react":"^3.13.1","expect":"^1.13.4","mocha":"^2.3.4","rifraf":"^2.0.2","rimraf":"^2.5.0","webpack":"^1.12.9"},"gitHead":"9cd7d9be57b475f16ba5d20d8aee9aa5ef814b98","_id":"lru-memoize@1.0.1","_shasum":"25afa87290562ab6addac4f323d16e8724306a9d","_from":".","_npmVersion":"3.5.2","_nodeVersion":"5.2.0","_npmUser":{"name":"erikras","email":"rasmussenerik@gmail.com"},"maintainers":[{"name":"erikras","email":"rasmussenerik@gmail.com"}],"dist":{"shasum":"25afa87290562ab6addac4f323d16e8724306a9d","tarball":"https://registry.npmjs.org/lru-memoize/-/lru-memoize-1.0.1.tgz","integrity":"sha512-fegcYtq6GeRkDWT8d7ty1ehZcfeaW0MIzklr7T8mmyKBvHr/qzxqC0Vt3crVy44mBk3NItY3olQJQtWPSnQtAg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfULkx5otJCT4SSOWfhvhUKg5du3GLd5tsaO16u4yt6wIgIFQUdIoCpbJx8xHOw3oDQb7haa0CdXnfnFr6TGK21BY="}]},"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/lru-memoize-1.0.1.tgz_1456850804202_0.38680146750994027"},"directories":{}},"1.0.2":{"name":"lru-memoize","version":"1.0.2","description":"A utility to provide lru memoization for any js function","main":"./lib/index.js","repository":{"type":"git","url":"git+https://github.com/erikras/lru-memoize.git"},"scripts":{"build":"npm run build:lib && npm run build:umd && npm run build:umd:min","build:lib":"babel src --out-dir lib","build:umd":"webpack src/index.js dist/lru-memoize.js --config webpack.config.development.js","build:umd:min":"webpack src/index.js dist/lru-memoize.min.js --config webpack.config.production.js","clean":"rimraf dist lib","lint":"eslint src","prepublish":"npm run lint && npm run test && npm run clean && npm run build","test":"mocha --compilers js:babel-register --recursive \"src/**/__tests__/*\"","test:cov":"cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text npm test","test:codecov":"cat ./coverage/lcov.info | ./node_modules/codecov.io/bin/codecov.io.js"},"keywords":["memoize","cache","caching","es7","decorator"],"author":{"name":"Erik Rasmussen","email":"rasmussenerik@gmail.com","url":"http://github.com/erikras"},"license":"MIT","bugs":{"url":"https://github.com/erikras/lru-memoize/issues"},"homepage":"https://github.com/erikras/lru-memoize","devDependencies":{"babel-cli":"^6.24.1","babel-core":"^6.24.1","babel-eslint":"^7.2.2","babel-loader":"^6.4.1","babel-preset-es2015":"^6.24.1","babel-register":"^6.24.1","codecov.io":"^0.1.6","cross-env":"^4.0.0","eslint":"^3.19.0","eslint-config-react-app":"^0.6.2","eslint-plugin-flowtype":"^2.30.4","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^4.0.0","eslint-plugin-react":"^6.10.3","expect":"^1.20.2","mocha":"^3.2.0","nyc":"^10.2.0","rifraf":"^2.0.3","rimraf":"^2.6.1","webpack":"^2.4.1"},"gitHead":"86f655e17032e055187f4bb492e0c6937fa48318","_id":"lru-memoize@1.0.2","_shasum":"f5ae84d288e7d55fec8388ec0bd725621bc815d0","_from":".","_npmVersion":"4.5.0","_nodeVersion":"7.7.4","_npmUser":{"name":"erikras","email":"rasmussenerik@gmail.com"},"maintainers":[{"name":"erikras","email":"rasmussenerik@gmail.com"}],"dist":{"shasum":"f5ae84d288e7d55fec8388ec0bd725621bc815d0","tarball":"https://registry.npmjs.org/lru-memoize/-/lru-memoize-1.0.2.tgz","integrity":"sha512-vGix1Z7orYGV2P9VDMGS91UDOBEVC1RLHO8ZXTm+zo7O3g66e65jK90DuijEQZIRy3Li5r0E586g/ZO2dCNI+g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFR0sItbG0fNh0f2Zp5bKdUV5a6wy/+yN+GnM3q0N5XpAiEA1DMSlUmIbXD0qFZzT4o1HmD04N4ZkffFio+tIq9ggng="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/lru-memoize-1.0.2.tgz_1492505907758_0.23444919544272125"},"directories":{}},"1.1.0":{"name":"lru-memoize","version":"1.1.0","description":"A utility to provide lru memoization for any js function","main":"dist/lru-memoize.cjs.js","jsnext:main":"dist/lru-memoize.es.js","module":"dist/lru-memoize.es.js","typings":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/erikras/lru-memoize.git"},"scripts":{"start":"nps","test":"nps test","prepare":"lint-staged && npm start validate"},"keywords":["memoize","cache","caching","es7","decorator"],"author":{"name":"Erik Rasmussen","email":"rasmussenerik@gmail.com","url":"http://github.com/erikras"},"license":"MIT","bugs":{"url":"https://github.com/erikras/lru-memoize/issues"},"homepage":"https://github.com/erikras/lru-memoize","devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.3.3","@babel/plugin-proposal-decorators":"^7.3.0","@babel/plugin-proposal-export-namespace-from":"^7.2.0","@babel/plugin-proposal-function-sent":"^7.2.0","@babel/plugin-proposal-json-strings":"^7.2.0","@babel/plugin-proposal-numeric-separator":"^7.2.0","@babel/plugin-proposal-throw-expressions":"^7.2.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-syntax-import-meta":"^7.2.0","@babel/plugin-transform-flow-strip-types":"^7.2.3","@babel/plugin-transform-runtime":"^7.2.0","@babel/preset-env":"^7.0.0","@babel/preset-flow":"^7.0.0","@babel/register":"^7.0.0","babel-jest":"^24.1.0","babel-loader":"^8.0.5","bundlesize":"^0.17.1","flow-bin":"^0.93.0","glow":"^1.2.2","husky":"^1.3.1","jest":"^24.1.0","lint-staged":"^8.1.4","nps":"^5.9.3","nps-utils":"^1.7.0","nyc":"^13.2.0","prettier":"^1.16.4","rifraf":"^2.0.3","rimraf":"^2.6.1","rollup":"^1.2.2","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^9.2.0","rollup-plugin-flow":"^1.1.1","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-uglify":"^6.0.2"},"lint-staged":{"*.{js*,ts*,json,md,css}":["prettier --write","git add"]},"jest":{"testEnvironment":"node","testPathIgnorePatterns":[".*\\.ts"]},"bundlesize":[{"path":"dist/lru-memoize.umd.min.js","maxSize":"1kB"},{"path":"dist/lru-memoize.es.js","maxSize":"2kB"},{"path":"dist/lru-memoize.cjs.js","maxSize":"2kB"}],"husky":{"hooks":{"pre-commit":"lint-staged && npm start validate"}},"gitHead":"fab5d613facdbcd11853caf8705c235b67dad677","_id":"lru-memoize@1.1.0","_nodeVersion":"11.1.0","_npmVersion":"6.8.0","_npmUser":{"name":"erikras","email":"rasmussenerik@gmail.com"},"dist":{"integrity":"sha512-klI4QO8wE8V6rl8EwQTZP6vgM0URWN/0OMFdG9E2fJTaWc6Ox+nSTs8cgJ8QNd0We0vX40n+sd6K4cgb+BzXuA==","shasum":"073900ad72abdc67a3b455a797c7e94d7103e69a","tarball":"https://registry.npmjs.org/lru-memoize/-/lru-memoize-1.1.0.tgz","fileCount":32,"unpackedSize":127447,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcbnH0CRA9TVsSAnZWagAAkV0P/2o2Vov28u06NoWfy5el\nXShXMyXahd3o2nRkZq4VXNi0StgbHWczNMHzQOuXbPBGO0IEAcG7eBnf5NLt\nkODlTxMiEziJ3++AvztrKmvj8+6rNO1DeTpZuvErFNG0JVXPq1ohm0FkRaTY\nej1Y2M+kFWTYDQZp5kfPcvnZg7JNjANnymTqTOuVmXXwN18AE2+COzs795vE\nVFpP8Kx5dDPNQb59glSpcbbUi4KsNYPkJGhWOt77U3kDMXoZeic2RSXKwL6t\ntoERIPErRGHPpKW5txCNhk3NSzXF8wA8Qs6t5iPVUEKCBQPPcNWqm34YHLvq\n8ak0iAorHBJFCdIJjCxx0YBdMEHFcF1WMb80ClHlKTAPP0rIqnQsiIQbJrg1\nibUhbiuFuI51ZB+2GoOooXEzLaUG72Q7JrZ0mzRQ2mi6x4AtkkPRlgczDRDL\nDAY1XoUZpnbwAYvMj/PVkRAfFEWuxp1o/auLoEIlV3OcS01EfyybjSKqajtt\nXuPsPwmGkyrRjyhPGJYffWqhCwOD0ZAf8MredtuyfqZ4s9tT/EdnFqfjyiKe\nV0LJQfCHkVOou9dScX7nGhTZNSk3IxUV1sQre7h6ADXd42jinvZFO0bXk+Ei\nA2TdzzJcHtV3z6jfW76/LRt8i2LwhOa2chTEnDnvghR5slpiS4e1uHLyKURC\nF/yj\r\n=s4yB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQWGVRDNQWlD1pofxQVhOx543LLQcKPutPmdgAPs7CHgIgO3eyaLa7MixpsVCFlhFOVUSWs2qjEmTyojEuvym0+HQ="}]},"maintainers":[{"name":"erikras","email":"rasmussenerik@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lru-memoize_1.1.0_1550742004199_0.6992524423249431"},"_hasShrinkwrap":false}},"readme":"# lru-memoize\n\n[![NPM Version](https://img.shields.io/npm/v/lru-memoize.svg?style=flat-square)](https://www.npmjs.com/package/lru-memoize) \n[![NPM Downloads](https://img.shields.io/npm/dm/lru-memoize.svg?style=flat-square)](https://www.npmjs.com/package/lru-memoize)\n[![Build Status](https://img.shields.io/travis/erikras/lru-memoize/master.svg?style=flat-square)](https://travis-ci.org/erikras/lru-memoize)\n\n`lru-memoize` is a utility to provide simple memoization for any pure javascript function, using an [LRU cache](https://en.wikipedia.org/wiki/Cache_algorithms) that prioritizes the most recently accessed values, and discards the \"least recently used\" (LRU) items when the size limit is reached. _If your function has side effects or relies on some external state to generate its result, it should not be memoized._\n\n## Installation\n\n```\nnpm install --save lru-memoize\n```\n\n## Usage\n\nLet's look at an example where we want to memoize a function that multiplies three numbers together, and we want to keep the last ten `arguments -> value` mappings in memory.\n\n### ES5\n\n```javascript\nvar memoize = require('lru-memoize');\n\nvar multiply = function(a, b, c) {\n  return a * b * c;\n}\n\nmultiply = memoize(10)(multiply);\n\nmodule.exports = multiply;\n```\n\n### ES6\n\n```javascript\nimport memoize from 'lru-memoize';\n\nlet multiply = (a, b, c) => a * b * c;\n\nmultiply = memoize(10)(multiply);\n\nexport default multiply;\n```\n\n## API\n\n#### `memoize(limit:Integer?, equals:Function?, deepObjects:Boolean?)`\n\nReturns `(Function) => Function`.\n\n###### -`limit` : Integer [optional]\n\n> The number of `arguments -> value` mappings to keep in memory. Defaults to `1`.\n\n###### -`equals` : Function [optional]\n\n> A function to compare two values for equality. Defaults to `===`.\n\n###### -`deepObjects` : Boolean [optional]\n\n> Whether or not to perform a deep equals on Object values. Defaults to `false`.\n\n","maintainers":[{"name":"erikras","email":"rasmussenerik@gmail.com"}],"time":{"modified":"2022-06-19T14:30:18.793Z","created":"2015-08-12T08:32:25.524Z","0.0.1":"2015-08-12T08:32:25.524Z","0.0.2":"2015-08-12T08:54:02.399Z","1.0.0":"2015-08-31T13:57:47.825Z","1.0.1":"2016-03-01T16:46:48.186Z","1.0.2":"2017-04-18T08:58:29.566Z","1.1.0":"2019-02-21T09:40:04.350Z"},"homepage":"https://github.com/erikras/lru-memoize","keywords":["memoize","cache","caching","es7","decorator"],"repository":{"type":"git","url":"git+https://github.com/erikras/lru-memoize.git"},"author":{"name":"Erik Rasmussen","email":"rasmussenerik@gmail.com","url":"http://github.com/erikras"},"bugs":{"url":"https://github.com/erikras/lru-memoize/issues"},"license":"MIT","readmeFilename":"README.md","users":{"moimikey":true,"gothy":true,"ninetails":true}}