lru-cache-ext
Version:
Thin wrapper around lru-cache with extended functionality.
54 lines (31 loc) • 2.31 kB
Markdown
# lru-cache-ext
[](https://circleci.com/gh/blackflux/lru-cache-ext)
[](https://coveralls.io/github/blackflux/lru-cache-ext?branch=master)
[](https://dependabot.com)
[](https://david-dm.org/blackflux/lru-cache-ext)
[](https://www.npmjs.com/package/lru-cache-ext)
[](https://www.npmjs.com/package/lru-cache-ext)
[](https://github.com/semantic-release/semantic-release)
[](https://github.com/blackflux/js-gardener)
Thin wrapper around lru-cache with extended functionality.
## Install
Install with [npm](https://www.npmjs.com/):
$ npm install --save lru-cache-ext
## Usage
Please refer to [lru-cache](https://www.npmjs.com/package/lru-cache).
## Additional Options
### cacheNull
Type: `boolean`<br>
Default: `true`
When set to other than `true`, the `null` value is not cached with `memoize` and `memoizeSync`.
## Additional Functions
### memoize(key: String, valueFn: function, ...args)
Only when the key is not present in cache (or has expired), `valueFn` is called and placed into cache.
The cached value is returned when it becomes available (important in the case where `valueFn` is async).
The cache is left empty if an error is thrown at any point in `valueFn` (even asynchronous).
Useful when multiple async operation need to access the same async information.
### memoizeSync(key: String, valueFn: function, ...args)
Similar to "memoize", when key is not present (or has expired), `valueFn` is called and placed into the cache.
Cached value is returned from the function.
`valueFn` can be a synchronous or asynchronous function.
If `valueFn` is an asynchronous function and an error is thrown asynchronously, the cache is not invalidated.