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 🙏

© 2026 – Pkg Stats / Ryan Hefner

ts-quickstore

v0.1.3

Published

A Typescript based state management system

Readme

ts-quickstore

A Typescript based state management system.

ts-quickstore has excellent static checking and intellisense support thanks to typescript and clever type integrations. It is a simple interface with a performant implementation using ES6 Proxies.

Features:

  • NO dependencies
  • Strong intellisense support
  • Catch implementation errors at compile time
  • Undo and redo built in
  • Event system to watch changes to state
  • Easy to use API

Installation

npm install ts-quickstore

Alternatively, clone this repo and build from source:

git clone [email protected]/chris-pauley/ts-quickstore
cd ts-quickstore
npm install
npm run build

Usage

ts-quickstore uses a similar interface to VueX. The store manages a state which is modified by mutations which are called by actions. Actions and mutations are held in maps as such:

const actions = {
    myAction({ commit, payload, dispatch }){
        // Here we can commit mutations or dispatch other actions
        // Actions may be asynchronous
        commit('myMutation', payload);
    }
};

const mutations = {
    myMutation({ state, payload }){
        // State may be modified here
        // Mutations must be synchronous and may not call other mutations
        state.someProperty = payload;
    }
}

A store class must be instantiated with initial state, actions, mutations, and typings for each of these.

const myStore = new Store<typeof initialState, 
                            typeof actions, 
                            typeof mutations>({ 
                                    state: initalState, 
                                    actions, 
                                    mutations
                                });

Actions can be called by name and are caught by typescript if they do not exist on the actions map.

myStore.dispatch('myAction', someObject);
// The following will throw a compile time error:
myStore.dispatch('doesNotExist', someObject);

Changes to the state can be watched and callbacks dispatched when changes occur

myStore.add_observer(['todos.length'],() => { console.log('todos changed!') };
// watch specific properties of list members:
myStore.add_observer(['[email protected]'],() => { console.log('todo state changed!') };

Development

Build and test scripts are available via npm:

> npm run test
> npm run build

Compiled JS will output to dist/ with source maps, though this library is best incorporated with typescript projects to maintain type support. Feel free to make changes and submit a PR!