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 🙏

© 2025 – Pkg Stats / Ryan Hefner

reduxie

v1.3.3

Published

redux library to persist state through IndexedDB using middleware utility

Readme

Reduxie


Description

Asynchronous Redux state initialization and offline caching using the Dexie IndexedDB API wrapper.

Purpose

Reduxie solves the problem of efficient state persistence for your web application. Its lightweight developer experience enhances the Redux store to automatically cache state updates without blocking the main thread. This is particularly synergistic with progressive web apps utilizing service workers for a completely offline experience.

TypeScript

Reduxie is built in TypeScript and includes type files!

Install

npm install reduxie

Use

Import statement: import Reduxie from 'reduxie';

Wrap your reducers by passing the combined reducers to Reduxie's OuterReducer: Reduxie.OuterReducer(reducers)

store.js


const configs = {throttleTime: 500, deleteCount: 20};

const store = createStore(
  Reduxie.OuterReducer(reducers),
  composeWithDevTools(applyMiddleware(thunk, Reduxie.Middleware('dbname', configs)))
);

The config parameter is optional and specifies a throttleTime for caching throttle frequency (ms) and deleteCount for cache storage limit. For an application with large store objects we advise smaller storage limits.

Implement the state fetch by adding Reduxie.GetReduxieState(dbname, dispatch) to the component where you would like the fetch to originate from (typically your app's landing page container).

Function should be called from React's componentDidMount class method (or useEffect for functional components utilizing hooks):

ReactComponent.js

//...

const mapDispatchToProps = (dispatch) => ({
  getIDBState: Reduxie.GetReduxieState('dbname', dispatch),
});

const ReactFunctionalComponent = (props) => {
  React.useEffect(props.getIDBState, []);

  return (
  //...Display elements
  )
}

How It Works

Reduxie will cache your state to IndexedDB on every state update by using a Redux middleware function specific to your app.

To retrieve your state use the Reduxie GetReduxieState method parametrized by your Redux dispatch from the connected mapDispatchToProps function. This will return a function to be called from your React app's ComponentDidMount (useEffect) lifecycle methods.