@flourish/store

2.0.0 • Public • Published

Flourish store

Flourish module for storing and updating values and querying when they've changed.

Install

To install the module, type:

npm install @flourish/store

Usage

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...

1) A name and value pair

var result = store("a", 7);

In the above case result will be true unless the property a was already set to 7.

2) An array

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).

3) An object

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.

Matching modes

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):

.mode(property, "strict-equality")

The default === comparison.

.mode(property, "equality")

Like "strict_equality" but using == instead of ===.

.mode(property, "array-contents")

For comparing the contents of two arrays by their elements (using ===) rather than checking whether the arrays themseleves are the same.

.mode(property, some_array)

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 ===).

Retrieving (a copy of) the contents of store

This can be done with the .stored method:

.stored(key)

This returns the value of the stored property key.

.stored()

This returns a clone of the entire stored object.

Readme

Keywords

none

Package Sidebar

Install

npm i @flourish/store

Weekly Downloads

39

Version

2.0.0

License

LicenseRef-LICENSE

Unpacked Size

15.1 kB

Total Files

10

Last publish

Collaborators

  • scottb-flourish
  • jontyt
  • rushlet
  • winna_canva
  • bruno-riddy
  • libruca
  • jwitcombe
  • katietannercanva
  • b3n-canva
  • caletilford
  • florin.oprina
  • robinhouston
  • duncanclark
  • daanlouter
  • hughsk
  • mark-kiln
  • animateddata
  • larsvers
  • luptilu
  • bobbysebolao
  • hrobertson
  • oampo