This bugfix release fixes an issue in the recent createEntityAdapter sorting perf improvements that could (in specific cases) cause Immer to throw an error when trying to read a plain JS value instead of a proxy-wrapped value.
This bugfix release improves sorting performance in createEntityAdapter, shrinks the code size in matcher utilities, fixes assorted issues with query hooks, and makes several TS tweaks.
Changelog
Entity Adapter Sorting Performance
Users reported in #4252 that the sorting performance of createEntityAdapter seemed abnormally bad - the provided comparison functions were being called far more times than expected.
Upon investigation, we had a couple of problems. We were always starting from an array that was in insertion order, not the existing sorted order, and that would always require significant effort to re-sort even if there weren't any actual changes to the sorted results. Also, the sorting checks required frequent access to Immer's Proxy-wrapped values, even in cases where all we needed was the plain state values for comparison purposes.
We've reworked the internal sorting logic to always start from the existing sorted array, do reads against a plain value to avoid the Proxy getter overhead where possible, and optimized inserts into existing sorted arrays. This should significantly speed up sorted entity adapter behavior.
Matcher Code Size Optimization
We've reworked the internals of the thunk-related matchers to deduplicate some of the logic, shaving a few bytes off the final bundle size.
RTK Query Hook Updates
defaultSerializeQueryArgs can now handle BigInt values safely.
The isLoading flag logic was improved to handle errors when a query hook tries to subscribe.
TS Updates
create.asyncThunk's types were improved to avoid cases where it might infer any.
We've made several internal types changes to work correctly with React 19's upcoming types.
The retryCondition method now receives unknown as an argument, instead of always assuming the user is using fetchBaseQuery.
Other Changes
The Reselect dep has been bumped to 5.1.0 to match the expected internal usage of createSelector.withTypes().
Bumps the production-dependencies group with 14 updates in the / directory:
11.11.0
11.11.5
5.15.14
5.15.19
5.15.14
5.15.19
6.19.9
6.19.11
2.2.1
2.2.5
1.11.10
1.11.11
7.2.0
7.2.1
5.0.6
5.0.7
3.1.42
3.1.44
6.12.0
6.12.1
6.9.13
6.9.15
7.51.1
7.51.5
14.1.0
14.1.2
9.1.0
9.1.2
Updates
@emotion/styled
from 11.11.0 to 11.11.5Release notes
Sourced from
@emotion/styled
's releases.Commits
f4640f6
Version Packages (#3170)c9b84db
Fix mismatch between CSSInterpolation and Interpolation<Props> (#3164)6e0e388
Version Packages (#3160)5b82631
Renamed an internalhasOwnProperty
tohasOwn
(#3159)0bfa978
AdddisableRemotePlayback
to valid prop types (#3156)b0014b4
Version Packages (#3143)49c20b4
Fix Theme import for newer Typescript module resolution modes (#3101)45c440f
ChangeArray
toReadonlyArray
in CSS type declarations (#3141)1c60314
AddSECURITY.md
f3b268f
Version Packages (#3058)Updates
@mui/icons-material
from 5.15.14 to 5.15.19Release notes
Sourced from
@mui/icons-material
's releases.... (truncated)
Changelog
Sourced from
@mui/icons-material
's changelog.... (truncated)
Commits
4a1101b
[release] v5.15.19 (#42441)607daac
v5.15.18 (#42233)9bc4fc4
v5.15.17 (#42162)284e251
v5.15.16 (#42084)5a07996
5.15.15 (#41752)Updates
@mui/material
from 5.15.14 to 5.15.19Release notes
Sourced from
@mui/material
's releases.... (truncated)
Changelog
Sourced from
@mui/material
's changelog.... (truncated)
Commits
4a1101b
[release] v5.15.19 (#42441)3a72d07
[material-ui][responsiveFontSizes] Handled undefined variants (@brijeshb42
) (...4999882
[material-ui][Slider] Fix wrong CSS value (@mnajdova
) (#42373)8046fdd
[core] Fix React 18.3 warnings about spreading keys in the Material UI `Autoc...c409a0c
[docs-infra] Allow JSDoc tags (#42327)aabf8c9
[material-ui][AlertTitle] Enable extending Typography props (@lucasgmelo
) (#4...bfcb0b6
[core] Fix a few more key spread issues (@oliviertassinari
) (#42318)df6516e
[docs][material-ui][Pagination] Clarify paginationpage
prop API (@Mandar-P
...607daac
v5.15.18 (#42233)cb590e4
[material-ui][ToggleButtonGroup] Add missingselected
class in ToggleButton...Updates
@mui/x-data-grid
from 6.19.9 to 6.19.11Release notes
Sourced from
@mui/x-data-grid
's releases.Commits
Updates
@reduxjs/toolkit
from 2.2.1 to 2.2.5Release notes
Sourced from
@reduxjs/toolkit
's releases.... (truncated)
Commits
4578c74
Release 2.2.52e400d5
Merge pull request #4412 from reduxjs/bugfix/4411-immer-current4cc7b1f
Fix Immercurrent
usage when the value may not be a draft87e2e59
Switch vitest args to allow file filtering by name againf2cc82c
Merge pull request #4406 from Wase-Zahin/feature/typob0a14b2
fix: fix typo0246f78
Release 2.2.472b3ac6
Merge pull request #3957 from reduxjs/retry-error-typec892abd
Merge pull request #4337 from jared-ca/undefined-type-initiate-mutation5d77624
Merge pull request #4364 from smacpherson64/masterUpdates
dayjs
from 1.11.10 to 1.11.11Release notes
Sourced from dayjs's releases.
Changelog
Sourced from dayjs's changelog.
Commits
f9790ae
chore(release): 1.11.11 [skip ci]ccf947e
Merge pull requestIssues
0 New issues
0 Accepted issues
Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code
See analysis details on SonarCloud
Looks like these dependencies are updatable in another way, so this is no longer needed.