v2.4.0
This feature release includes multiple tweaks and fixes to RTK Query functionality, additional exported TS types, and drops support for TS versions earlier than 5.0.
Changelog
RTK Query Improvements
Lazy query hooks can now be reset.
retry.fail now accepts meta as a second argument.
Tag invalidation arrays now ignore nullish values.
We did some small internal refactoring around Maps and default values that shrank bundle size slightly.
Bugfixes
Passing skipToken to a query hook now bails out before running any other logic, which fixes cases where serializeQueryArgs previously threw an error because there were no args to process.
The autoBatchEnhancer now reads window.requestAnimationFrame later, which it to work properly with Jest fake timers.
We fixed cases where the hook result isSuccess flag would briefly flicker to false when switched to a different cache entry that was uninitialized, and would briefly flicker to true when refetching a query that previously errored.
The listener middleware previously had inconsistent logic checks for comparing against existing listener entries (effect + type, vs effect only). It now always checks both effect + type.
Additional TS Types
We now export Typed[Query|Mutation]OnQueryStarted helpers to let you define onQueryStarted callbacks outside of createApi if desired.
We also now export a CreateAsyncThunkFunction type that can be used to type userland wrappers around createAsyncThunk.
TS Support Matrix Updates
We've historically tried to maintain TS backwards compatibility as long as possible, and made occasional updates to our TS support matrix in minor versions over time. As of RTK 2.3.0, we officially supported back through TS 4.7.
As of this release, we're tweaking that support policy to match the policy used by DefinitelyTyped:
Definitely Typed only tests packages on versions of TypeScript that are less than 2 years old
Given that, we've dropped official support for TS versions earlier than 5.0. (RTK may work with those versions, but we no longer test against them and won't try to fix issues with those versions.)
We'll continue to update our TS support matrix over time based on that 2-year rolling window.
What's Changed
- add example to reproduce defect of serializeQueryArgs with skipToken by @Themezv in #4708
- Read
window.rAFlater to allow fake timers to work correctly by @ensconced in #4701 - Add type helpers for
OnQueryStartedcallbacks by @aryaemami59 in #4713 - Add a type for
createAsyncThunkwithout thewithTypesmethod by @EskiMojo14 in #4667 - Add ability to reset lazy query hooks by @alexmotoc in #4689
- Ignore nullish values in tag invalidations by @pierroberto in #4671
- Allow passing meta to retry.fail, and passing baseQuery to ensure types match by @EskiMojo14 in #4723
- Keep
isSuccess: truewhen switching to an uninitialized cache entry by @markerikson in #4731 - Keep
isSuccessconsistent when refetching after an error by @markerikson in #4732 - Update to new version of upsert proposal, and fix listener equality checks by @EskiMojo14 in #4735
Full Changelog: v2.3.0...v2.4.0
