Robot
A functional, immutable Finite State Machine library
README
Robot
<img
alt="The Robot logo, with green background."
src="https://github.com/matthewp/robot-logo/raw/master/logo/robot-green.png"
width="40%"
/>
A small functional and immutable Finite State Machine library. Using state machines for your components brings the declarative programming approach to application state.
See thisrobot.life for the main documentation.
- ```js
- import { createMachine, interpret, state, transition } from 'robot3';
- let machine = createMachine({
- off: state(
- transition('toggle', 'on')
- ),
- on: state(
- transition('toggle', 'off')
- )
- });
- const service = interpret(machine, () => {
- render();
- });
- ```
Please star the repository on GitHub.
File an issue if you find a bug. Or better yet...
Submit a pull request to contribute.
Testing
Tests are located in the test/ folder. Load test/test.html in your browser of choice with any HTTP server you like (I use http-server). Tests are written in QUnit and are simple to understand.
Integrations
Robot works with a variety of UI libraries, and includes integrations for React, Preact, Haunted, and more. See the integrations page to learn more.
License
BSD-2-Clause