Flourish module for storing and updating values and querying when they've changed.
To install the module, type:
npm install @flourish/store
The module exports a single (default) function that can be used to create a store
function by calling it with an array that specifies the names to assign to properties stored in the state.
import createStore from "@flourish/store";
var store = createStore(["state", "a", "b"]);
Call the store
function to check whether anything has changed (true
) with the new (set of) value(s). You can pass in...
var result = store("a", 7);
In the above case result
will be true unless the property a
was already set to 7.
var result = store([state, a, my_var]);
In the above case result
will be true unless state
matches (see below) the saved value of property state
in the store, a
matches the saved value of a
in the store and my_var
matches the saved value of b
(following the order defined in the initialisation step).
var result = store({ state: state, a: a, b: 62 });
In the above case result
will be true unless state
matches the saved value of property state
in the store, a
matches the saved value of a
in the store and the saved value of b
is 62. Extraneous properties are ignored.
By default, comparison is done using the triple equals (===
) operator. This can be changed for each property by using mode
method on the store function (which returns the store
function):
The default ===
comparison.
Like "strict_equality"
but using ==
instead of ===
.
For comparing the contents of two arrays by their elements (using ===
) rather than checking whether the arrays themseleves are the same.
For comparing a subset of properties of an object. As an example:
var store = createStore(["state", "data", "xScale"])
.mode("state", ["bin_count", "mode"]);
When store
is called, only the bin_count
and mode
properties of the state
object will be compared (using ===
).
This can be done with the .stored
method:
This returns the value of the stored property key
.
This returns a clone of the entire stored object.