Skip to content

trslater/pubstore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pubstore

A microscopic pubsub-based store utility for building HTML/CSS-first apps without the bloat and boilerplate of a full-fledged frontend framework.

Installation

npm i pubstore

Usage

Import constructor:

import { makePubstore } from "pubstore"

Make your store for a given variable with a default value:

const [subVar, unsubVar, pubVar, var] = makePubstore(0)

Replace var and Var with whatever name you wish, e.g., subCount.

Subscribe functions to receive updates from the store:

subVar(var => { console.log(var) })

Publish updates, usually via events:

document.getElementById("my-button").onclick = () => {
    pubVar(oldVar => oldVar + 1)
}

Publish functions must take a function that accepts the old value and returns a new value. If you don't need the old value, you can simple use:

pubVar(() => 7)

Any subscribing functions will be called with the updated value, only if the value has changed. This allows you to cut down on DOM updates.

You can also peek at the current value of a store:

const currVar = var()

Examples

There are additional examples in the examples directory. To run them, be sure pubstore is installed, then from the main package directory, type:

npx parcel examples/<example>/index.html

Parcel provides a simple dev server that doesn't need to be installed in a package, and facilitates ES6 module style.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published