emit immutable store
npm install @emit-js/emit @emit-js/store
const emit = require("@emit-js/emit")()
require("@emit-js/store")(emit)
emit.set("prop", "prop2", "some value")
emit.get("prop", "prop2") // "some value"
emit.merge("prop", { prop3: "another value" })
emit.get("prop") // { prop2: "some value", prop3: "another value" }
emit.delete("prop")
emit.get() // {}
Use emit.on
or emit.any
on the store
event id:
emit.on("store", "prop", () => {})
Pass a function to emit.set
for atomic operations:
emit.set("counter", value => (value || 0) + 1)
The raw state object is available at emit.state.store
.
Some of the immutability features were borrowed from debitoor/dot-prop-immutable.