npm.io
1.0.0 • Published 3 years ago

@mixery/state-machine

Licence
GPL-3.0-or-later
Version
1.0.0
Deps
0
Size
38 kB
Vulns
0
Weekly
0

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"

Keywords