beat 0.2.0
beat: ^0.2.0 copied to clipboard
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 #
- [x]: Support simple state transition without context
- [x]: Listen on transition
- [x]: Map states
- [x]: Execute callback on state change
- [x]: Support reset
- [ ]: Support context as a
final- [x]: Initialize with context
- [x]: Get current context
- [x]: Support sync
assign - [ ]: Support async
assign - [ ]: Support actor model
- [x]: Initialize with context
- [ ]: Support transition with an argument for
assign- This is an easy way of async
assign
- This is an easy way of async
- [ ]: Support delay
- [ ]: Support actions (fire-and-forget)
- [ ]: Support
entryandexitevent - [ ]: Support conditional (guraded) transition
- [ ]: Support custom functions
- [ ]: Support
instate condition
- [ ]: Support
- [ ]: Support custom functions
- [ ]: Support Transient State Nodes
- [ ]: Support external transition
- [x]: Support any state transition
- [x]: BeatStation with common
Beatoption
- [x]: BeatStation with common
- [ ]: Support invoking services
- [ ]: Support actors
- [ ]: Support
state.matchesas ais{State} - [ ]: Support
state.nextEventsas aenumandString - [ ]: Support
state.changed,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
- [ ]: Define parallel state
- [ ]: 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
Beatannotation state.toString(): naturally supportedstate.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
- [ ]:
- [ ]: