`automata-reducer` example
import createAutomataReducer, { AutomataSpec, StandardAction } from '../src/' import actions from './actions' import log from './console' interface State { state: string value: number } const automata: AutomataSpec= { 'init': { IDLE: 'idle', INCREMENT: [increment, 'idle'] }, 'idle': { RESET: ['init', reset], INCREMENT: increment } } const reducer = createAutomataReducer(automata, 'init') const idle = reducer(void 0, actions.IDLE()) log('IDLE():')(idle) // IDLE(): {"state":"idle"} const fourtytwo = reducer(idle, actions.INCREMENT(42)) log('INCREMENT(42):')(fourtytwo) // INCREMENT(42): {"state":"idle","value":42} const init = reducer(fourtytwo, actions.RESET()) log('RESET():')(init) // RESET(): {"state":"init","value":0}