It's a simple timer app that uses xState to manage the state of the timer. It allows user to set the timer and displays the remaining time. The timer can be paused, resumed, continued and stopped.
- The whole state of the timer described and managed as a state machine.
- It's a timed state machine. The remaining value update and ticking interval is implemented on top of the actor.
- Timer has 1/10 of the second precision, which makes it more interesting to implement.
- Timer is covered with generative integration tests. @xstate/graph is used to generate state machine paths, steps from which are transformed into test actions.