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

dynamic-storage

v1.1.3

Published

dynamic-storage is a wrapper around localStorage that simplifies manipulations, such as state update, dynamic state, JSON, parsing and working with objects/arrays.

Downloads

11

Readme

dynamic-storage

npm version License

dynamic-storage is a wrapper around localStorage that simplifies manipulations, such as state update, dynamic state, JSON parsing and working with objects/arrays.

Installation

Install the package using npm:

npm install dynamic-storage

Import and initialize.

import DynamicStorage from "../index.js";

const storage = DynamicStorage.init()

Examples

Example 1: Dynamic State

Description

This example demonstrates best practices for achieving dynamic state while updating.

Code

<script type="module">
  import DynamicStorage from 'dynamic-storage';

  const storage = DynamicStorage.init()

  // ❌ Not dynamic
  // The local storage will still be updated, but the variable 'access_token' won't change.
  let access_token = storage.access_token;
  console.log(access_token);

  access_token = "new value";
  console.log(access_token); // Only the value in local storage was changed; the variable 'access_token' remained the same

  // ✅ Instead use this:
  // The function will check for the value in local storage each time it is called.
  let access_token = () => storage.access_token;
  console.log(access_token()); // log: "initial value"

  access_token = "new value";
  console.log(access_token()); // log: "new value"

</script>

Example 2: Working with Objects

Description

This example demonstrates how to work with objects using the library, following standard JavaScript principles.

Code

<script type="module">
  import DynamicStorage from 'dynamic-storage';

  const storage = DynamicStorage.init()

  // ❌ Won't work if 'data' is empty
  storage.data.user.name = "Ben";

  // ✅ Use this if 'data' is empty
  storage.data = {user: {name: "Ben"}}

  console.log(storage.data.user.name) // log: "Ben"
  storage.data.user.name = "Alex";

  // Same logic with arrays
  storage.values = [1,2,3,4,5]
  console.log(storage.values[0]) // log: 1

  storage.values[0] = 6
  console.log(storage.values[0]) // log: 6
</script>

Example 3: Removing Items from localStorage

Description

This example shows how to remove a single item from localStorage or completely clear localStorage using the library.

Code

<script type="module">
  import DynamicStorage from 'dynamic-storage';

  const storage = DynamicStorage.init()

  storage.access_token = undefined // Because value is undefined, it will be removed from localStorage

  DynamicStorage.clear() // Clears localStorage  
</script>

Contributing

We welcome pull requests. For major changes, please first open an issue to discuss what you would like to change.

Before committing code, please ensure the following:

  • Descriptive Naming: Use meaningful names for variables, functions, and classes.
  • Consistent Formatting: Follow a consistent coding style for indentation, spacing, and brace placement.
  • Modular Functions: Keep functions focused on singular tasks for readability and reusability.
  • Purposeful Comments: Include comments that explain the 'why' rather than just the 'what'.
  • Eliminate Redundancy: Remove redundant code, unused variables, and unnecessary functions to reduce clutter.

Tips for Writing Good Commit Messages:

  • Be Specific: Focus on describing the change itself, not why or how it was done.
  • Use Present Tense: Write in the present tense for a command-like style (e.g., "Add feature" instead of "Added feature").
  • Stay Concise: Keep the summary line short but informative.
  • Separate Concerns: Consider splitting multiple changes into separate commits with clear messages.
  • Proofread: Ensure your commit messages reflect professionalism and attention to detail.