Back to Explore

caiogondim/fast-memoize.js

GitHub
1 watchersOpen source

Last release:

fast-memoize is a JavaScript library for memoization, designed to speed up programs by caching results of expensive function calls and reusing them for repeated inputs. It supports memoizing functions with N arguments, and can use a custom cache implementation or a custom serializer to control how arguments are turned into cache keys.

Project status

  • Maintenance status: Not clearly actively maintained as of 2026-08-13, since the most recent published updates appear to be v2.5.2 on 2020-03-04, with the upstream repo push noted on 2023-02-19 but no corresponding newer update evidence in the provided timeline.
  • Update cadence: Updates have been sporadic with long gaps (for example, 2017-2018, then 2018, then 2020), suggesting an infrequent release pattern rather than steady iteration.

AI summary generated

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

Recent updates

  • v2.5.2

    v2.5.2 does not include publisher release notes, but the diff shows the main changes are TypeScript-related: updated type definitions and a revised TypeScript typings test strategy. The biggest potential breaking change is in the exported typings, specifically the Cache interface shape.

    Breaking
  • v2.4.0

    Release v2.4.0 adds TypeScript typings for fast-memoize, including a new declaration file and a small TypeScript compilation test. The package metadata and test scripts were updated so that `npm test:all` now also runs a `tsc` check against the new typings.

    Features
  • v2.3.2

    Release v2.3.2 was published on 2018-03-12, but no release notes were provided by the publisher. Because the changelog content is missing, this release cannot be analyzed for developer-impacting API changes, behavior changes, fixes, or migration steps from the provided data.

  • v2.3.0

    v2.3.0 is presented as a performance-focused release ("Faster") with benchmarking changes. The actual code change primarily optimizes cache hit/miss checks and adjusts what counts as a primitive argument, which has behavioral side effects not described in the release notes.

    Breaking
  • v2.2.8

    Release v2.2.8 is primarily described as a README update adding a Gotchas section. However, the actual code changes also introduce new public strategy exports and refactor strategy binding logic, plus there are notable dependency and tooling changes in the project.

    Features
  • v2.2.7

    Release v2.2.7 appears to be a syntax-only change, targeting compatibility with older JavaScript environments. The release notes state that all ES2015+ usage is removed, and the diff shows elimination of ES2015 constructs such as arrow functions and const.

  • v2.2.3

    v2.2.3 primarily targets ES5 compatibility without requiring transpilation. The core implementation was rewritten to remove modern JavaScript syntax (const, let, arrow functions, rest/spread, and class syntax), while keeping the same exported memoize API surface.

  • v2.2.1

    Release v2.2.1 is presented as a documentation-only update (“Fix on README”). The actual diff changes the required custom cache interface described in README.md by removing the `delete` method from the list of required functions.

  • v2.2.0

    Release v2.2.0 refactors the library to ES2015+ syntax, adds a new util.inspect-based serializer to the benchmarks, and removes a cache.delete method from the default cache implementation. The bulk of the code diff is stylistic modernization, plus a small functional change to the default cache class.

    BreakingFeatures
  • v2.1.1

    v2.1.1 is a small documentation-focused release that updates the README to show a benchmark GIF instead of a static PNG. The only other functional change visible in the diff is the CI configuration adjustment in .travis.yml.

    Features
  • v2.1.0

    Release v2.1.0 includes a performance-focused change, claiming that `fast-memoize.js` is now the fastest memoization library. No API, breaking, security, or migration details are provided in the release notes.