5 ms·
Show HN: Ex-machina – Minimalist state machine in JavaScript
- ddrum001 11y agoCould the OP or the Github Readme explain why this is called Ex-Machina...
- JadeNB 11y agoBecause the creator's a fan of Alex Garland? (EDIT: I think too that "out of the machine" is not a terrible, if also not a terribly enlightening, description of how a state machine makes decisions.)
- robinbressan 11y agoIn fact there is no reason. I needed it quickly for another project and the common names was already taken on npm.
- ddrum001 11y agoThanks...makes sense now.
- harlowja 11y agoAnother one (but this time in python): http://docs.openstack.org/developer/automaton/api.html#machines http://docs.openstack.org/developer/automaton/api.html#machi... Code @ https://github.com/openstack/automaton https://github.com/openstack/automaton
- yoshuaw 11y agoOh hey, I also built a JS state machine a while back. Nice to see other implementations around! :D - https://github.com/yoshuawuyts/fsm-event https://github.com/yoshuawuyts/fsm-event
- mgold 11y agoIt wasn't immediately clear to me, but this library tracks both the state (e.g. "state1") and a payload, some arbitrary value. This already seems like two separate concerns? As for transitions, it seems that each state has a collection of functions for every other state, which are called with the payload to determine if that state should be transitioned into. This seems error-prone - if there's no transition, is that the end or an error? If there are multiple, how do you choose? It also seems that the state machine will run immediately to completion unless you return a promise payload. (Bluebird? ES6? It doesn't say.) So if you want a reactive document, this doesn't seem like a fit.