landstrasse
Version:
Strongly typed WAMP Client for browsers
32 lines • 963 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
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;
}
}
exports.default = StateMachine;
//# sourceMappingURL=index.js.map