Skip to content

Update dependency redux to v4.1.2 - autoclosed

Tine Wittler requested to merge renovate/redux-4.x into master

This MR contains the following updates:

Package Type Update Change
redux (source) dependencies minor ^4.0.5 -> 4.1.2

Release Notes

reduxjs/redux

v4.1.2

Compare Source

This release fixes a small specific TS types issue where state types that had a nested unknown field inside would cause compilation failures when used as the preloadedState argument.

What's Changed

Full Changelog: https://github.com/reduxjs/redux/compare/v4.1.1...v4.1.2

v4.1.1

Compare Source

Just a small fix for Safari users in development mode.

Changes

v4.1.0

Compare Source

This release shrinks our bundle size via error message extraction, updates several error messages for clarity, and optimizes our list of runtime dependencies.

Overall, version 4.1 shrinks from 2.6K min+gz to 1.6K min+gz thanks to these changes.

Be sure to check out the Redux Toolkit 1.6 alpha containing our new "RTK Query" data fetching APIs! It also includes Redux 4.1 as a dependency.

Changelog

Error Message Extraction and Improvements

We now extract all of our error messages from production builds in order to save on bundle size, using a technique inspired from React's error code extraction. The error messages will still show as normal in development, but in production they will reference a specific numeric error code and provide a link to a Redux docs page that has the full error message.

An example of this is: https://redux.js.org/errors?code=5 , which shows the "can't subscribe while reducers are executing" error.

The error code extraction saves about 800 bytes out of a production build.

Thanks to @​andrewmcgivery for doing all the hard work on implementing the error extraction!

We've also updated many of our error messages to provide additional details at runtime about what happened, especially runtime type checks such as "actions must be plain objects". They now provide a more specific type for the unexpected value, such as indicating promise or function:

    expect(() => store.dispatch(() => {})).toThrow(
      /the actual type was: 'function'/
    )

    expect(() => store.dispatch(new Date())).toThrow(
      /the actual type was: 'date'/
    )
Dependency Updates

We've updated the list of runtime dependencies for Redux:

  • We inlined the symbol-observable polyfill. This shrinks bundle size by a few bytes,
  • We've removed the legacy loose-envify dependency, which was only ever needed by Browserify users. If you still happen to be using Browserify, please review your build settings and see if you need to make any updates.
  • We now explicitly depend on @babel/runtime to extract some additional helpers out of our bundle. It's likely that your app already is pulling in those helpers anyway, so that removes some potential duplication.
Typing Tweaks

We've merged fixes for a couple edge cases in the 4.x TS typings related to state types.

Changes


Configuration

📅 Schedule: At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

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


  • If you want to rebase/retry this MR, click this checkbox.

This MR has been generated by Renovate Bot.

Edited by Tine Wittler

Merge request reports