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

context-persist

v0.0.5

Published

A lightweight solution for storing state values in Local Storage

Readme

Context Persist

A lightweight solution for storing values in Context in Local Storage.

If you prefer to utilize Context for Global State Management but want similar functionality to Redux Persist, this library might be a good fit for your use case.

We do not currently support storing non-serializable data (like Dates) into Local Storage. We might look at adding a transform function option later on if this is requested enough.

Installing

Using npm:

$ npm install react-persist

Using yarn:

$ yarn add react-persist

Basic Usage

import { PersistProvider } from 'react-persist';

const ParentComponent: FC = () => {
  return (
    <PersistProvider
      defaultValue="default here"
      persistKey="cool-key-here"
      persistVersion={1}
    >
      <ChildComponent />
    </PersistProvider>
  );
};
const ChildComponent: FC = () => {
  const { value, updateValue } = usePersist<string>();

  return (
    <div>
      <h1>{value}</h1>
      <button onClick={() => updateValue('New value for local storage')}>
        Update Value!
      </button>
    </div>
  );
};

API

PersistProvider

The Provider for persisting a value in local storage. If you want to guarantee a clear on values in local storage for all users, you just need to update the version number for the specific Provider.

interface PersistProviderProps {
    children: ReactNode;
    defaultValue: any;
    persistKey: string;
    persistVersion: number;
}

const PersistProvider: ({ children, defaultValue, persistKey, persistVersion, }: PersistProviderProps) => JSX.Element;

usePersist

A hook that will give you access to the value stored in the PersistProvider, as well as, an update value function for actually changing the value in the Provider. You have the option to pass in the type of the value if you would like to have some type safety.

function usePersist<T = any>(): {
  value: T;
  updateValue: (value: T) => void;
};

Found a bug or want an enhancement?

Please file an issue on this repo and I will do my best to prioritize the requests appropriately!