MixeryOSS / state-machine

Yet another state-related package.
GNU General Public License v3.0
0 stars 0 forks source link

State Machine

Yet another state-related package

State machine allows you to share value across all components through the usage of Slot. Each Slot can watch for any changes in value (either by changing its internal value or from binded slot).

Example

import * as sm from "@mixery/state-machine";

let mySlot = new sm.Slot<string>("default value (optional)");
mySlot.onChange.add((newValue, oldValue) => {
    console.log(newValue, oldValue);
});
mySlot.value = "new value";

let anotherSlot = new sm.Slot<string>();
mySlot.bindTo(anotherSlot);
anotherSlot.value; // "new value"