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.
Bumps the lib group with 13 updates in the /frontend/lib directory:
2.2.3
2.2.6
20.12.12
20.14.9
18.3.1
18.3.3
7.8.0
7.14.1
7.8.0
7.14.1
3.6.0
3.7.0
8.57.0
9.6.0
0.4.6
0.4.7
10.3.12
10.4.2
3.2.5
3.3.2
5.4.5
5.5.2
5.2.11
5.3.2
2.0.1
2.1.1
Updates
@reduxjs/toolkit
from 2.2.3 to 2.2.6Release notes
Sourced from
@reduxjs/toolkit
's releases.... (truncated)
Commits
a9362fb
v2.2.620d5d2b
Merge pull request #4485 from reduxjs/entity-golf93b29e1
remove a couple more unnecessary assertionsd114f81
type getCurrent to remove Draft typef0088d3
golf a few things09c36a2
Merge pull request #4420 from JacobShafer/fix/4411_fix_sorted_idsb1b845a
remove unused importsdc0cb57
Merge pull request #4475 from aryaemami59/fix-ci-tests9371a4c
Fix CI tests07614dd
Merge pull request #4468 from aryaemami59/bump-vitestUpdates
@types/node
from 20.12.12 to 20.14.9Commits
Updates
@types/react
from 18.3.1 to 18.3.3Commits
Updates
@typescript-eslint/eslint-plugin
from 7.8.0 to 7.14.1Release notes
Sourced from
@typescript-eslint/eslint-plugin
's releases.... (truncated)
Changelog
Sourced from
@typescript-eslint/eslint-plugin
's changelog.... (truncated)
Commits
b4fe94f
chore(release): publish 7.14.1f29150f
fix(eslint-plugin): [prefer-nullish-coalescing] ensure ternary fix does not r...9b7731d
fix(eslint-plugin): [prefer-nullish-coalescing] treat enums and literals as t...dfc4469
chore(release): publish 7.14.0635133a
docs: split troubleshooting into granular sections (#9024)c322099
fix(eslint-plugin): [no-invalid-this] support AccessorProperty (#9411)23e6468
fix(eslint-plugin): [prefer-nullish-coalescing] handle intersected primitive ...5c4a5de
feat(ast-spec): tighter types and documentation for declaration/* (#9211)e47123d
fix(eslint-plugin): [no-extraneous-class] handle abstract members (#9367)dc18229
feat: support TypeScript 5.5 (#9397)Updates
@typescript-eslint/parser
from 7.8.0 to 7.14.1Release notes
Sourced from
@typescript-eslint/parser
's releases.... (truncated)
Changelog
Sourced from
@typescript-eslint/parser
's changelog.... (truncated)
Commits
b4fe94f
chore(release): publish 7.14.1dfc4469
chore(release): publish 7.14.01212a8f
chore(release): publish 7.13.18a178ed
chore(release): publish 7.13.0c9a6dd9
feat(parser, typescript-estree): export withoutProjectParserOptions utility (...7e93b28
chore(release): publish 7.12.02bbf656
fix(types): correct typing ParserOptions (#9202)e360541
chore(release): publish 7.11.0c18226e
chore(release): publish 7.10.077fc366
chore(release): publish 7.9.0Updates
@vitejs/plugin-react-swc
from 3.6.0 to 3.7.0Release notes
Sourced from
@vitejs/plugin-react-swc
's releases.Changelog
Sourced from
@vitejs/plugin-react-swc
's changelog.Commits
b829b03
docs: add changelogf41bbc3
release: v3.7.08f5d9a0
chore: update tests for compatibility with Vite 6 (#208)59efc9b
fix(deps): update all non-major dependencies (#194)be68920
chore(deps): update dependency@swc/plugin-emotion
to v3 (#201)53878df
feat: support HMR for class components (#203)Updates
eslint
from 8.57.0 to 9.6.0Release notes
Sourced from eslint's releases.
... (truncated)
Changelog
Sourced from eslint's changelog.
... (truncated)
Commits
473d1bb
9.6.0f435566
Build: changelog update for 9.6.0b15ee30
chore: upgrade@eslint/js
@9
.6.0 (#18632)d655503
chore: package.json update for@eslint/js
release1613e2e
fix: Allow escaping characters in config patterns on Windows (#18628)13dbecd
docs: Limit search to just docs (#18627)7c78ad9
refactor: Use language.visitorKeys and check for non-JS SourceCode (#18625)e2b16e2
feat: Implement feature flags (#18516)69ff64e
refactor: Return value of applyInlineConfig() (#18623)375227f
docs: Update getting-started.md - add pnpm to init eslint config (#18599)Updates
eslint-plugin-react-refresh
from 0.4.6 to 0.4.7Release notes
Sourced from eslint-plugin-react-refresh's releases.
Changelog
Sourced from eslint-plugin-react-refresh's changelog.
Commits
70dcd5a
Supportexport { Component as default }
(fixes #41) [publish]Updates
glob
from 10.3.12 to 10.4.2Changelog
Sourced from glob's changelog.
... (truncated)
Commits
eef7ea3
10.4.2c76a7d2
use package-json-from-dist to look up package.json3cb1ed7
10.4.17a6c2a2
changelog 10.4057d5b2
update prettier, format everything10162fb
export Ignoref0bd1e8
10.4.0ed0d061
AddincludeChildMatches: false
optionb274298
10.3.161efe27c
jackspeak@3.1.2Updates
prettier
from 3.2.5 to 3.3.2Release notes
Sourced from prettier's releases.
Changelog
Sourced from prettier's changelog.
... (truncated)
Commits
1596a60
Release 3.3.2aebcee5
chore(deps): update dependency esbuild to v0.21.5 (#16379)57aa928
chore(deps): update dependency c8 to v10 (#16380)c3d0b7f
chore(deps): update typescript-eslint to v7.13.0 (#16376)27c35db
chore(deps): update dependency codemirror-graphql to v2.0.12 (#16369)6de3258
chore(deps): update dependency jest to v30.0.0-alpha.5 (#16371)b5f983d
Upgrade yarn to v4.3.0 (#16377)d6f37c4
chore(deps): update dependency browserslist to v4.23.1 (#16368)5055b7d
chore(deps): update dependency execa to v9.2.0 (#16372)f4608cc
chore(deps): update dependency cspell to v8.8.4 (#16370)Updates
typescript
from 5.4.5 to 5.5.2Release notes
Sourced from typescript's releases.
Commits
ce2e60e
Update LKGf3b21a2
🤖 Pick PR #58931 (Defer creation of barebonesLibSourc...) into release-5.5 (#...7b1620b
🤖 Pick PRSuperseded by #1077.