beat 0.3.1 copy "beat: ^0.3.1" to clipboard
beat: ^0.3.1 copied to clipboard

discontinued
outdated

A set of annotations for beat state management. Heavily inspired by xstate.js.org

Beat Station - State management with state machine #

Heavily inspired by xstate.js.

Go to the Beatly Book for more information.

Features compatible with xstate.js #

  • ✅ Support simple state transition without context
  • ✅ Listen on transition
  • ✅ Map states
  • ✅ Execute callback on state change
  • ✅ Support reset
  • ❌ Support context
    • ✅ Initialize with context
      • ✅ Get current context
      • ✅ Support sync assign
      • ✅ Support async assign
      • ✅ Get current context
      • ❌ Get immutable current context
      • ❌ Support actor model
  • ❌ Support transition with an argument for assign
  • ❌ Support delay
  • ❌ Support actions (fire-and-forget)
  • ❌ Support entry and exit event
  • ❌ Support conditional (guraded) transition
    • ❌ Support custom functions
      • ❌ Support in state condition
  • ❌ Support Transient State Nodes
  • ❌ Support external transition
  • ✅ Support any state transition
    • ✅ BeatStation with common Beat option
  • ❌ Support invoking services
  • ❌ Support actors
  • ❌ Support state.matches as a is{State}
  • ✅ Support state.nextEvents
  • ❌ Support state.changed
  • ✅ Support state.done
  • ❌ Support state.meta, state.tags
  • ❌ Support state change history
  • ❌ Support history json to persist
  • ❌ Support nested state
  • ❌ Support parallel state
    • ❌ Define parallel state
      • ❌ Support multiple targets event
  • ❌ State transition with side effect
  • ❌ Support scxml
  • ❌ Support stately.ai
  • ❌ Support bootstraping
  • ❌ Support CLI/GUI tools
  • ❌ xstate.js compatible beat station

Features not supported by this package but in xstate.js #

  • Final state is naturally defined which does not have any Beat annotation
  • state.toString(): naturally supported
  • state.can(event) is not needed because we have typed system
  • wildcard transitions and forbidden transitions are not needed because there will be no typo

Additionals for flutter #

  • ❌ Support beat-statation-friendly flutter widgets
  • ❌ Support remix.run's concept
    • loader
      • action (side effect)
      • ErrorBoundary/CatchBoundary

Usage #

1
likes
0
points
6
downloads

Publisher

verified publisherbeatly.dev

Weekly Downloads

A set of annotations for beat state management. Heavily inspired by xstate.js.org

Repository (GitHub)
View/report issues

License

unknown (license)

More

Packages that depend on beat