Back to Explore

reduxjs/reselect

GitHub
1 updates · last 90 days1 watchersOpen source

Last release:

Reselect is a JavaScript library for creating memoized selector functions, commonly used with Redux to compute derived data from state efficiently. It avoids recomputing a selector unless its input arguments change, and it supports composing selectors by using one selector as input to another.

Project status

  • Actively maintained: The source (reduxjs/reselect) shows recent upstream activity (last push 2026-05-18) and a current version update (v5.2.0 on 2026-05-15), indicating ongoing maintenance rather than dormancy.
  • Update cadence: Updates appear intermittent, for example a long gap from v5.1.1 (2024-06-01) to v5.2.0 (2026-05-15), suggesting a slower release rhythm with occasional targeted changes rather than frequent regular updates.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v5.2.0

    reselect v5.2.0 focuses on better tree-shaking and fixes a rare ref leak in weakMapMemoize, and it also restores npm trusted publishing provenance. The diff also shows several build and packaging changes intended to improve treeshakeability of distributed artifacts.

  • v5.1.1

    v5.1.1 is a patch release focused on correcting memoization edge cases. It fixes `resultEqualityCheck` behavior in `weakMapMemoize`, corrects `lruMemoize` cache sizing when `maxSize` is less than 1, and includes an internal change to the `NOT_FOUND` sentinel value.

  • v5.1.0

    v5.1.0 adds pre-typed selector creator APIs, `createSelector.withTypes<RootState>()` and `createStructuredSelector.withTypes<RootState>()`, to avoid repeating the root state type. It also tightens dev-time `identityFunctionCheck` to reduce false positives, and fixes a `weakMapMemoize` equality-check edge case for primitive results. Most other changes in this diff are documentation, tests, and dependency bumps.

    Features
  • v5.0.1

    Reselect v5.0.1 finalizes the v5.0.0 release wave, with the main documented changes centered on selector memoization behavior, renamed memoizers, and updated TypeScript types. The included code diff (as shown) also touches development-only stability checks infrastructure, TypeScript type exports, and a small runtime fix for WeakRef handling.

    BreakingFeatures
  • v5.0.0-rc.1

    This v5.0.0-rc.1 release candidate renames Reselect's memoization function export from `defaultMemoize` to `lruMemoize`, and updates development-only warning logs to include a stack trace for easier debugging. Internally, it also renames the equality check helper used by the memoizer.

    BreakingFeatures
  • v5.0.0-rc.0

    Release v5.0.0-rc.0 is a release candidate that changes Reselect's selector memoization defaults to use weakMapMemoize. It also restructures development-mode selector checks by adding an identity-function result check (x => x) alongside the existing input stability check, and updates related TypeScript types.

    BreakingFeatures
  • v5.0.0-beta.1

    v5.0.0-beta.1 is primarily a TypeScript-focused beta release intended to improve how hover previews render for generated selectors. Release notes mention only a hover-preview fix, but the diff shows much broader changes, especially in exported/public TypeScript type definitions and some runtime argument validation behavior.

  • v5.0.0-beta.0

    v5.0.0-beta.0 refactors Reselect's selector memoization internals to let you pass memoization functions and options directly to createSelector, including separate memoizers for the overall arguments vs the extracted input values via argsMemoize. It also renames the experimental autotrack memoizer to an unstable, clearer name and drops support for TypeScript 4.6 and earlier.

    BreakingFeatures
  • v5.0.0-alpha.2

    v5.0.0-alpha.2 adds a development-only stability check to createSelector, intended to detect input selectors that return unstable references and can cause unnecessary recomputation. It also updates the build pipeline to produce sourcemapped artifacts, including a browser-ready ESM bundle and improved legacy ESM output for Webpack 4 compatibility.

    Features
  • v5.0.0-alpha.1

    v5.0.0-alpha.1 introduces two experimental memoizers, autotrackMemoize and weakmap-based memoization, intended to be used via createSelectorCreator. It also adjusts createSelector's outer dependency memoization behavior back to using defaultMemoize. The release adds new tests for the memoizers and related selector utilities.

    Features