Skip to content

lc-2025/storage-manager

Storage Manager

A browser storage library.

Storage Manager CI Storage Manager CD

About

An out-of-the-box Storage API NPM package to securely manage browser storage actions. Performs the proper support checks and triggers each action according to the browser specifications.

Features

  • Both Local than Session objects support
  • Usable as a standalone utility as well as a React hook

Stack

  • Languages: JavaScript, Typescript, YAML, Bash
  • Environments: DOM
  • Libraries: Testing Library
  • Frameworks: Jest
  • Linters/Plugins: ESLint, Prettier
  • Compilers: Babel, TypeScript
  • Testing: Jest, Testing Library
  • Versioning: GitHub, Husky
  • Continuous-Integration/Delivery: GitHub Actions
  • Deployment: NPM Registry

Getting Started

The package production version is available on NPM at https://npmjs.com/package/@lc-2025/storage-manager. For any contribution, maintanance and/or trial needs, please refer to the following specifications.

Installation

On terminal, from project root:

npm i @lc-2025/storage-manager

Usage

  • As a React hook:
// MyComponent.{jsx|tsx}

import { useStorage } from '@lc-2025/storage-manager';

const myComponent = () => {
  // As `localStorage`
  const { setStorage } = useStorage();

  const handleSomething = () => {
    //...
    setStorage('myItem', '123');
    //...
  }

  return (
    //...
  );
}
  • As a standalone utility (sessionStorage):
// myFeature.{js|ts}

const { getStorage, deleteStorages } = useStorage('session');

const myFunction = () => {
  //...

  const value = getStorage('myItem');

  //...

  deleteStorages(['myItem']);
};

API

  • Type: [local|session] (default: local)

    Defines the Storage API object to be used

    // Use `sessionStorage` API
    const { setStorage } = useStorage('session');
  • Get

    Invokes the Storage API getItem method

    getStorage(item: string): string | null
  • Set

    Invokes the Storage API setItem method

    setStorage(item: string, value: string): void
  • Delete

    Invokes the Storage API removeItem method on a provided collection

    deleteStorages(items: Array<string>): void

Contributing

Setting Up

On terminal, from project root:

  • To install dependencies
npm run install
  • To lint the sources
npm run lint
  • To build the production version
npm run build

Tests

Unit

On terminal, from project root:

  • To run the unit tests in development mode
npm run test
  • To run the tests in testing mode (staging or content-integration/delivery environments)
npm run test:ci

Deploy

Storage Manager is integrated and delivered to production via GitHub Actions workflows pipeline, where the package is being set up, tested and built. Then the artifacts are deployed on NPM registry available at https://npmjs.com/package/@lc-2025/storage-manager.

  • To deploy the production version
npm run deploy

Please read more about required best practices on the specific contributing reference document.