landstrasse
Version:
Strongly typed WAMP Client for browsers
30 lines • 883 B
JavaScript
class StateMachine {
constructor(initialState, transitionMap) {
Object.defineProperty(this, "currentState", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
Object.defineProperty(this, "transitionMap", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
this.currentState = initialState;
this.transitionMap = transitionMap;
}
get current() {
return this.currentState;
}
update(args) {
const stateTransition = this.transitionMap.get(this.currentState);
if (!stateTransition) {
return;
}
this.currentState = stateTransition(args) || this.currentState;
}
}
export default StateMachine;
//# sourceMappingURL=index.js.map