v1.0
Initial stable release of FrostState.
FrostState provides small reactive state primitives for values, effects, and keyed stores, with zero runtime dependencies and support for Node, bundlers, and a browser UMD bundle.
Highlights
- Added
useState(value)for callable reactive state accessors - Added
useEffect(callback, options)for dependency-tracked reactive effects - Added
StateStorefor proxy-backed keyed state - Added
StateStore.wrap(...)andStateStore.merge(...)for object-to-store workflows - Added browser UMD builds in
dist/exposed asglobalThis.State - Added JSDoc-powered IntelliSense across the public API
Runtime behavior
useEffect()runs immediately and schedules normal re-runs in a microtaskeffect.sync()is available for immediate re-executionStateStoreproperty reads return existing keys and property assignment writes keys- Missing
StateStoreproperty reads returnundefined - Missing keys read during effect tracking subscribe to later assignment without becoming visible keys
store.set(...)is shallow by default- Nested reactive stores are available through
StateStore.wrap(..., { deep: true })andStateStore.merge(..., { deep: true }) - API keys such as
use,set,has, andkeysare reserved
Quality
- Added test coverage for state access, effects, keyed stores, nested store behavior, reserved keys, and effect error handling
- Added CI for lint, test, build, and package validation
- Added npm publish workflow with provenance support
Notes
- The package is ESM-only
- Weak effects rely on
WeakRef