matthewp / Robot
Licence: bsd-2-clause
🤖 A functional, immutable Finite State Machine library
Stars: ✠1,314
Programming Languages
javascript
184084 projects - #8 most used programming language
Robot
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.
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();
});
Documentation
📚- 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
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].