Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ensure lruMemoize correctly memoizes when maxSize is set to a number less than 1 #698

Merged
merged 2 commits into from
Feb 20, 2024

Conversation

aryaemami59
Copy link
Contributor

This PR:

  • Fixes an issue with lruMemoize that would cause memoization to completely break when maxSize is set to a value that is less than 1.
  • Adds units tests to make sure the issue is effectively resolved.

Copy link

netlify bot commented Feb 11, 2024

Deploy Preview for reselect-docs canceled.

Name Link
🔨 Latest commit d6379b1
🔍 Latest deploy log https://app.netlify.com/sites/reselect-docs/deploys/65c849d39a6e310008bfd5c7

Copy link

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit d6379b1:

Sandbox Source
Vanilla Typescript Configuration

@aryaemami59 aryaemami59 marked this pull request as ready for review February 11, 2024 20:18
@EskiMojo14
Copy link
Contributor

to be honest, i'm not sure this is something we needed to account for, but ultimately it's a one character change so can't hurt.

thanks!

@EskiMojo14 EskiMojo14 merged commit b856266 into reduxjs:master Feb 20, 2024
22 checks passed
@aryaemami59 aryaemami59 deleted the fix-maxSize branch February 21, 2024 16:17
descope bot added a commit to descope/descope-js that referenced this pull request Jun 23, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [reselect](https://togithub.com/reduxjs/reselect) | dependencies |
patch | [`5.1.0` ->
`5.1.1`](https://renovatebot.com/diffs/npm/reselect/5.1.0/5.1.1) |

---

### Release Notes

<details>
<summary>reduxjs/reselect (reselect)</summary>

###
[`v5.1.1`](https://togithub.com/reduxjs/reselect/releases/tag/v5.1.1)

[Compare
Source](https://togithub.com/reduxjs/reselect/compare/v5.1.0...v5.1.1)

This **patch release** fixes behavior of `resultEqualityCheck` in
`weakMapMemoize`, fixes the case of `lruMemoize` being given a `maxSize`
less than 1, and tweaks the internal implementation of `lruMemoize`.
(We've also updated our general build tooling.)

##### Changelog

##### Bug fixes

Previously, providing the `resultEqualityCheck` option to
`weakMapMemoize` resulted in it being called with empty objects as part
of the initialization / dev check process. That could be an issue if
your comparison function expected different values. We've updated the
logic to avoid that, as well as improving a couple other perf aspects.

Previously, passing a `maxSize` < 1 to `lruMemoize` would result in it
creating a larger cache. That's now fixed.

`lruMemoize` now uses a symbol for its `NOT_FOUND` value instead of a
string.

##### What's Changed

- Ensure `lruMemoize` correctly memoizes when `maxSize` is set to a
number less than 1 by
[@&#8203;aryaemami59](https://togithub.com/aryaemami59) in
[reduxjs/reselect#698
- Fix `resultEqualityCheck` behavior in `weakMapMemoize` by
[@&#8203;aryaemami59](https://togithub.com/aryaemami59) in
[reduxjs/reselect#699
- Update TypeScript to 5.4 by
[@&#8203;aryaemami59](https://togithub.com/aryaemami59) in
[reduxjs/reselect#708
- Upgrade to Yarn 4 by
[@&#8203;aryaemami59](https://togithub.com/aryaemami59) in
[reduxjs/reselect#705
- Fix: use unique value for NOT_FOUND by
[@&#8203;romgrk](https://togithub.com/romgrk) in
[reduxjs/reselect#709

**Full Changelog**:
reduxjs/reselect@v5.1.0...v5.1.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: descope[bot] <descope[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants