Skip to content
CAI
Produce a survey ↗Verify a survey

immerjs/immer

This system is a JavaScript/TypeScript library for managing immutable state through a 'produce' pattern, allowing safe mutation of draft objects. It provides core utilities for deep copying, patch generation, and strict mode configuration, while supporting advanced data structures like Maps and Sets. The codebase is structured with a clear public API, internal modules, and comprehensive type definitions for both TypeScript and Flow. Additionally, it includes performance benchmarking tools to compare its speed against other libraries and a documentation site for user guidance.

58.4

Adequate · 2 August 2026

19k

lines of production code

JavaScript

with TypeScript

2

bus factor · 221 authors in all

3

measurements over time

CAI band scale
CAI trend line

How it got here

2017–2018 · Build and test infrastructure modernization

The project modernized its build and testing infrastructure by migrating from Jest to Vitest and adopting tsup for bundling. This period also introduced comprehensive performance benchmarks and expanded type-checking tests to ensure code quality and speed.

5 changes

2019–2025 · API restructuring and testing modernization

This period focused on modernizing the project's infrastructure by migrating the test suite to Vitest and refactoring the source code into a clear public and internal API structure. It also introduced new features such as Map/Set support, optimized array methods, and a new current() utility, while significantly improving TypeScript type definitions and documentation.

12 changes

CAI lens gauges

Survey your own repository

immerjs/immer was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point the surveyor at a repository you know and see whether you agree with it.

Survey a repository

About this page

  • The description of this project is derived from its own commit history, not from its README.
  • The score is its highest published measurement, taken on 2 August 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit a3be9df762 — the exact code this score is about.
  • Scored under rubric rubric-2026.08.18. Score the same commit under that rubric and you get the same number.
CAI link cards