overmindjs Changelog
See all updates

OvermindJS Updates

v28

Jun 24th, 2021

This release is considered a "breaking cleanup release". There are some minor breaking changes, but also one big breaking change related to typing. Migration guide. Full release notes.

NEW

  • The context of actions now has reaction, addMutationListener and addFlushListener
  • We now have a branch operator which works like pipe, but it returns its input, allowing you to effectively branch out logic or just run a single action passing through the input
  • overmind-graphql now supports raw queries and mutations

IMPROVED

  • The typing approach has been simplified and also allows generic typing of actions
  • There is no more useOvermind hook, use specific hooks for your needs
  • The useAppState hook allows a callback that isolates tracking of changes
  • The statemachines API now has a strict declarative signature and a flexible functional signature
  • No more separate onInitialize, rather an action called onInitializeOvermind, exported with the rest of your actions
  • Actions are now interoperable with operators, which has led to removing some operators in favor of just using the plain action signature
  • The standalone devtools now runs on latest Electron, supporting Mac M1 machines

FIXED

  • overmind-react implementation has been simplified and now supports fast refresh

V27

Jan 23rd, 2021

This is not a major release. GitHub created new constraints on the name of tags, causing this release to be treated as part of the previous release as well... which was breaking.

IMPROVED

FIXED

  • Issue with process not being available with certain build tools
  • Circular dependency that some build tools would notify about
  • SSR memory leak. In SSR mode Overmind does not cache proxies
  • Allow merge only with onInitialize
  • Fixed issue with statechart matches API
  • Scrolling on Flush tab of devtools

SECURITY

  • Using new API for VSCode to load resources in extension

V26

Oct 25th, 2020

Finalized state machine API with strict mode and updated typing documentation

NEW

  • Changed state machine API
  • Updated TypeScript documentation
  • Introducing "strict mode", which requires you to define your state with state machines
  • Vue 3 composition hooks (experimental)
  • Set a custom development name (default is "development")
  • Hide devtools using CMD + h

IMPROVED

  • Tests now run in "devmode"
  • overmind-react does not require typing of createHook with implicit typing

FIXED

  • Make copy of state machines when mocking
  • Fixed lazy loading namespace path
  • Allow listening to mutations on root state in reactions
  • Fixed typing related to configs

V25

Aug 6th, 2020

New async JSON messaging with devtools and support for React concurrent mode

NEW

  • The statemachines API has changed
  • Support strict and concurrent mode in React

IMPROVED

  • Communication with devtools in now through the "non-blocking-json" package. There are more improvements coming here
  • Improve async flush by checking parent execution
  • Statemachines now shows warning when trying to transition to invalid state, in dev
  • Statemachines now has a simplified API to become more usable

FIXED

  • Fixed issue with merge config
  • Fix issue with React Native not having access to location
  • Fix crash in proxy-state-tree related to undefined values
  • Fix catching errors in dev, preventing errors from coming through
  • Fix issue in devtools with statemachine as root, it broke state updates
  • Next.JS now properly serializes mutations

REMOVED

  • The experimental revertable is removed due to stringify issues and also not turning out as expected

v24

Jun 8th, 2020

Breaking release which moves statecharts to own package, powers up statemachines and makes derived its own thing

NEW

IMPROVED

  • Statemachines has an improved, though breaking, API. Documentation
  • You can now open the application from within the devtools
  • Devtools allows writing plain JS to update state/payload to actions

REMOVED

  • Statecharts is moved to its own package to encourage contributions. Documentation
  • Derive type is removed