OmniLayer / omniexplorer

Block Explorer for Omni Protocol
Other
51 stars 51 forks source link

Bump reselect from 4.0.0 to 4.1.5 #501

Closed dependabot[bot] closed 2 years ago

dependabot[bot] commented 2 years ago

Bumps reselect from 4.0.0 to 4.1.5.

Release notes

Sourced from reselect's releases.

v4.1.5

This release updates the TS types to correctly infer selector parameters when input selectors have undefined or null as a parameter type or have optional parameters, and exports the CreateSelectorFunction type to fix uses of createStructuredSelector.

(The types fixes feel like playing whack-a-mole, but they keep getting better!

What's Changed

Full Changelog: https://github.com/reduxjs/reselect/compare/v4.1.4...v4.1.5

v4.1.4

This release has (you guessed it) more fixes to the TS types: a change to parameter merging that fixes breakage with selectors and RTK Query's API state, a simplification of the OutputSelectorFields type to improve selector variable readability, another update to parameter merging to flag nested never fields as compile errors, and a fix to createStructuredSelector parameters to resolve a lib compilation problem.

Changelog

More TS Fixes

The parameter merging fixes in 4.1.3 tried to "unwrap/expand" the parameter types to make them more readable, such as showing intersected objects as {a, b, c} instead of {a} & {b} & {c}. This was done with a recursive expansion type. That turned out to break with the complex state types used by RTK Query. We've updated the type expansion to only be a single level instead, which fixes the compilation issue.

The OutputSelectorFields type previously took two generics: the Combiner function, and a Result type. This led to extra values being shown in hover previews for selectors. By inferring Result = ReturnType<Combiner>, we were able to drop the second generic and cut down on the amount of types shown in previews.

A user noted that intersected objects with top-level incompatible fields (like {a: string} & {a: number}) resulted in empty objects, but no compile error. We've updated the parameter merging to flag those as never and catch the problem at compile time. Deeper nested incompatible fields should already be caught by TS.

The previous fix to createStructuredSelector missed a step in the spreading process, which has now been fixed.

What's Changed

Full Changelog: https://github.com/reduxjs/reselect/compare/v4.1.3...v4.1.4

v4.1.3

This release rewrites the TS type inference of input selector parameters for correctness, fixes inference of createStructuredSelector inputs, and fixes an issue with the OutputSelectorFields type not being exported.

Changelog

Input Selector Parameter Inference Improvements

Reselect's types have always been extremely tricky, because it involves passing multiple input selectors with potentially heterogeneous, and then nested function composition of multiple selectors. Additionally, the input selectors can be passed as individual arguments or a single array of input selectors.

The 4.0.0 typedefs dealt with this by hand-writing dozens of overloads, which was absolutely impossible to maintain.

In 4.1, we took advantage of TS's improved abilities to infer array/tuple types to consolidate the typedefs.

One of the issues that happened as a result was that arguments at the same input parameter index were being "unioned" together, rather than "intersectioned". For example, in this complex selector:

... (truncated)

Changelog

Sourced from reselect's changelog.

Change log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

Commits
  • 2f892bb 4.1.5
  • 901dab0 Merge pull request #557 from reduxjs/feature/csf-export
  • 9f5998e Include 4.5 in the TS test matrix
  • ad1eb08 Export CreateSelectorFunction to fix createStructuredSelector usage
  • 71e6cb6 Merge pull request #556 from reduxjs/feature/param-undefined-intersections
  • 8b920d5 Remove leftover TODO typetest comments and fix Selector usage
  • 0f4e2d2 Update param inference to handle undefined and unions correctly
  • d7131c0 4.1.4
  • 42b6381 Merge pull request #552 from reduxjs/feature/413-ts-checks
  • 7ed20fc Fix issues with createStructuredSelector parameters
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by acemarke, a new releaser for reselect since your current version.


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)