Skip to content

plain-store 0.10.1

Latest

Choose a tag to compare

@oe oe released this 04 Oct 11:57
faa6282

Improve repeated selector work while keeping the public API and default deep equality unchanged.

  • Share computations for the same pure selector function within the latest store snapshot; retain per-hook isolation for concurrent renders, props and hydration.
  • Avoid allocating an async result handler on synchronous writes; preserve async partial merging and reentrant notifications.
  • Enable unused-import tree shaking while preserving browser IIFE initialization and legacy import paths.
  • Add reproducible Zustand/Jotai benchmarks and a cached-list recipe. Explain the existing Object.is option and its notification/render tradeoffs.

Public declarations match 0.10.0. React remains the only runtime peer dependency. Shared results must be immutable and selectors pure. Cheap/distinct selectors have a small cache cost; gzip increases by 98–116 bytes, within the enforced budgets. This release does not claim to be fastest for every workload.

Validation: 60 tests on React 18 and 19, production/type builds, packed imports/types/tree shaking/size limits, and benchmark correctness checks. Saved full comparison reports were recorded before the version bump; their optimized runtime artifact matches 0.10.1 exactly.

Install: npm install plain-store@0.10.1