npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@flourish/store

v2.0.0

Published

Store values and query changes to them

Downloads

291

Readme

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.