Skip to content

Conversation

@depfu
Copy link
Contributor

@depfu depfu bot commented Nov 5, 2022

Here is everything you need to know about this update. Please take a good look at what changed and the test results before merging this pull request.

What changed?

✳️ redux-thunk (2.3.0 → 2.4.2) · Repo

Release Notes

2.4.2

This release removes an unused TS type that caused errors when users were type-checking libraries in node_modules.

What's Changed

Full Changelog: v2.4.1...v2.4.2

2.4.1

This release adds an explicit plain action overload to the ThunkDispatch TS type to better handle inference of the return value in some cases.

What's Changed

Full Changelog: v2.4.0...v2.4.1

2.4.0

This very overdue release makes several major improvements to the TypeScript types, and converts the actual source to TypeScript. Sorry for the delay!

Changelog

TypeScript Improvements

This release fixes several outstanding issues that had been reported with the types. An extra overload has been added to let TS correctly understand some generically-typed values being passed to dispatch, and the overloads have been reworked for additional compatibility.

There's also a new ThunkActionDispatch type that can be used to represent how bindActionCreators turns bound thunks into (arg) => thunkReturnValue.

Additionally, all of the generic args have been giving meaningful names instead of one-letter abbreviations (S -> State, E -> ExtraArgument, etc), and we've added descriptive comments in the type definitions for clarity.

Optional Global Dispatch Type Extension

Most Redux apps have the thunk middleware enabled, but the default Dispatch and bindActionCreator types only know about the standard behavior of a basic Redux store without any middleware. The thunk middleware types add to that type behavior, so that Dispatch knows dispatching a thunk can actually return a value such as a Promise.

We generally recommend inferring the type of dispatch and using that to create reusable types, including creating pre-typed hooks. However, some users may prefer to globally augment the Dispatch type to always use the additional thunk behavior.

You can now import 'redux-thunk/extend-redux' to globally augment the Dispatch type as an opt-in change in behavior.

Codebase Converted to TypeScript

We've gone ahead and converted the actual source to TS. Since the source was only 15-ish lines to begin with, most of the "conversion" time was just trying to convince TS that assigning thunk.extraArgument = createThunkMiddleware was a legal operation :)

We also updated the build tooling:

  • Babel updates
  • Rollup for the UMDs instead of Webpack
  • Github Actions for CI instead of Travis

Finally, the README has been updated with newer instructions and usage information.

What's Changed

New Contributors

Full Changelog: v2.3.0...v2.4.0

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github. The new version differs by 69 commits:


Depfu Status

Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with @depfu rebase.

All Depfu comment commands
@​depfu rebase
Rebases against your default branch and redoes this update
@​depfu recreate
Recreates this PR, overwriting any edits that you've made to it
@​depfu merge
Merges this PR once your tests are passing and conflicts are resolved
@​depfu close
Closes this PR and deletes the branch
@​depfu reopen
Restores the branch and reopens this PR (if it's closed)
@​depfu pause
Ignores all future updates for this dependency and closes this PR
@​depfu pause [minor|major]
Ignores all future minor/major updates for this dependency and closes this PR
@​depfu resume
Future versions of this dependency will create PRs again (leaves this PR as is)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants