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.
185 lines
4.5 KiB
185 lines
4.5 KiB
# micro-memoize CHANGELOG |
|
|
|
## 4.0.10 |
|
|
|
- Fix [#76](https://github.com/planttheidea/micro-memoize/issues/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 to `maxSize` when possible (slight performance improvement) |
|
|
|
## 4.0.3 |
|
|
|
- Namespace types under `MicroMemoize` namespace (which is how it was for `4.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 of `memoized.cache.snapshot` |
|
- Memoizing an already-memoized function no longer returns the function passed (now composes, see [Composition](README.md#composition)) |
|
|
|
#### Enhancements |
|
|
|
- You can now compose memoized functions with their options (see [Composition](README.md#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](https://nodejs.org/api/esm.html) exports |
|
|
|
## 2.0.4 |
|
|
|
- Fix issue with recursive calls to memoized function created discrepancy between `keys` and `values` in cache |
|
|
|
## 2.0.3 |
|
|
|
- More TypeScript typings (thanks again [@rtorr](https://github.com/rtorr)) |
|
|
|
## 2.0.2 |
|
|
|
- Fix TypeScript typings (thanks [@rtorr](https://github.com/rtorr)) |
|
|
|
## 2.0.1 |
|
|
|
- Fix TypeScript typings (thanks [@Crecket](https://github.com/Crecket)) |
|
|
|
## 2.0.0 |
|
|
|
- Add [`isMatchingKey`](#ismatchingkey) method to provide match test on entire key vs iterative equality |
|
|
|
**BREAKING CHANGES** |
|
|
|
- The return value from `transformKey` must be an `Array` (would previously coalesce it for you) |
|
|
|
**NEW FEATURES** |
|
|
|
- `isMatchingKey` will matching on entire key vs `isEqual`, which does an iterative comparison of arguments in order |
|
- Add `size` property to `cache` |
|
|
|
## 1.8.1 |
|
|
|
- Fix `getKeyIndex` being passed as `memoize` for promises |
|
|
|
## 1.8.0 |
|
|
|
- Include the memoized function itself as the third parameter to `onCacheAdd`, `onCacheChange`, and `onCacheHit` firings |
|
|
|
## 1.7.0 |
|
|
|
- Fire `onCacheHit` and `onCacheChange` when promise functions successfully resolve |
|
|
|
## 1.6.3 |
|
|
|
- Replace native `slice` usages with `cloneArray` utility |
|
|
|
## 1.6.2 |
|
|
|
- Convert `dist` files to be built using [`rollup`](https://github.com/rollup/rollup) instead of webpack |
|
|
|
## 1.6.1 |
|
|
|
- Optimize `slice` calls for key storage (performance) |
|
|
|
## 1.6.0 |
|
|
|
- Add [`onCacheAdd`](README.md#oncacheadd) option |
|
- Pass through unused properties in `options` for higher-order memoization library usage |
|
|
|
## 1.5.0 |
|
|
|
- Add [`onCacheHit`](README.md#oncachehit) option |
|
|
|
## 1.4.0 |
|
|
|
- Add `options` as second parameter to `onCacheChanged` |
|
|
|
## 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`](README.md#oncachechange) option |
|
|
|
## 1.2.0 |
|
|
|
- Add [`isPromise`](README.md#ispromise) option |
|
- Add typings for Flowtype and TypeScript |
|
|
|
## 1.1.0 |
|
|
|
- Add [`transformKey`](README.md#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
|
|
|