Closed gtg092x closed 6 years ago
Fantastic library!
I was interested in using this with an es6 class of mine like so:
class Matter extends StateMachine.es6 { static initialState = 'solid' static stateTransitions = [ { name: 'melt', from: 'solid', to: 'liquid' }, { name: 'freeze', from: 'liquid', to: 'solid' }, { name: 'vaporize', from: 'liquid', to: 'gas' }, { name: 'condense', from: 'gas', to: 'liquid' } ] }
I went ahead and created a PR that supports this.
It adds a function that can be extended like above and adds additional functionality around setting the state property directly.
class Matter extends StateMachine.es6 { static initialState = 'solid' static stateTransitions = [ { name: 'melt', from: 'solid', to: 'liquid' }, { name: 'freeze', from: 'liquid', to: 'solid' } ] onFreeze() { console.log('It\'s cold!'); } } const h20 = new Matter(); h20.state = 'solid'; // log - It's cold!
Fantastic library!
I was interested in using this with an es6 class of mine like so:
I went ahead and created a PR that supports this.
It adds a function that can be extended like above and adds additional functionality around setting the state property directly.