You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.5 KiB
4.5 KiB
micro-memoize CHANGELOG
4.0.10
- Fix #76 -
noUncheckedIndexedAccess
support on TS 4.1+
4.0.9
- Update npm search keywords and documentation
4.0.8
- Improve typings to support
strict
mode in TypeScript
4.0.7
- Create more targeted
getKeyIndex
helpers for more speed in each key situation
4.0.6
- Use standard
then
interface (.then(onFulfilled, onRejected)
) instead of ES spec (.then(onFulfilled).catch(onRejected)
) for broader support
4.0.5
- Fix failure when
getKeyIndex
is used and no keys are in the cache
4.0.4
- Use
.pop()
to cap cache tomaxSize
when possible (slight performance improvement)
4.0.3
- Namespace types under
MicroMemoize
namespace (which is how it was for4.0.0
, but it got lost)
4.0.2
- Make Cache class consumable in types
4.0.1
- Fix types for consumption
4.0.0
- Update to use
Cache
class instead of plain object (~10% performance improvement)
Breaking changes
memoized.cacheSnapshot
has been deprecated in favor ofmemoized.cache.snapshot
- Memoizing an already-memoized function no longer returns the function passed (now composes, see Composition)
Enhancements
- You can now compose memoized functions with their options (see Composition)
3.0.2
- Fix types declarations to ensure signature of
fn
passed is retained - Throw an error when the first parameter passed is not a function
3.0.1
- Fix types declaration for
Options
to allow custom keys / indices
3.0.0
- Rewrite in TypeScript
- Use
rollup
for builds of all packages
BREAKING CHANGES
- CommonJS
require
s no longer require.default
- Types contract is much stricter
- Utility methods are no longer deep-linkable
- Not technically exposed in the API, but was relied upon by other libraries)
2.1.2
- Fix issue where
isMatchingKey
was not being used with promise updater - Remove requirement of
Object.assign
existing globally - Add common use-case static handlers for up to 3 arguments, falling back to pre-existing dynamic handlers for more (faster comparison / argument cloning)
2.1.1
- Upgrade to babel 7
- Add
"sideEffects": false
for better tree-shaking with webpack
2.1.0
- Add ESM support for NodeJS with separate
.mjs
extension exports
2.0.4
- Fix issue with recursive calls to memoized function created discrepancy between
keys
andvalues
in cache
2.0.3
- More TypeScript typings (thanks again @rtorr)
2.0.2
- Fix TypeScript typings (thanks @rtorr)
2.0.1
- Fix TypeScript typings (thanks @Crecket)
2.0.0
- Add
isMatchingKey
method to provide match test on entire key vs iterative equality
BREAKING CHANGES
- The return value from
transformKey
must be anArray
(would previously coalesce it for you)
NEW FEATURES
isMatchingKey
will matching on entire key vsisEqual
, which does an iterative comparison of arguments in order- Add
size
property tocache
1.8.1
- Fix
getKeyIndex
being passed asmemoize
for promises
1.8.0
- Include the memoized function itself as the third parameter to
onCacheAdd
,onCacheChange
, andonCacheHit
firings
1.7.0
- Fire
onCacheHit
andonCacheChange
when promise functions successfully resolve
1.6.3
- Replace native
slice
usages withcloneArray
utility
1.6.2
- Convert
dist
files to be built usingrollup
instead of webpack
1.6.1
- Optimize
slice
calls for key storage (performance)
1.6.0
- Add
onCacheAdd
option - Pass through unused properties in
options
for higher-order memoization library usage
1.5.0
- Add
onCacheHit
option
1.4.0
- Add
options
as second parameter toonCacheChanged
1.3.2
- Make additional properties (
cache
,cacheSnapshot
,isMemoized
,options
) configurable for higher-order memoization library usage
1.3.1
- Only reorder keys when matching cache entry is not first key
1.3.0
- Add
onCacheChange
option
1.2.0
- Add
isPromise
option - Add typings for Flowtype and TypeScript
1.1.0
- Add
transformKey
option
1.0.1
- Delay argument-to-key generation until stored as new cache value (speed improvement of ~35%)
1.0.0
- Initial release