Socket
Book a DemoInstallSign in
Socket

storage-typed

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

storage-typed

Web Storage wrapper that provides automatic JSON parsing/stringifying and type-specific features.

latest
Source
npmnpm
Version
1.0.1
Version published
Maintainers
1
Created
Source

storage-typed

Web Storage only accepts string value so you should write this verbose code everytime:

// get
try {
  const value = window.localStorage.getItem(key);
  return value ? JSON.parse(value) : null;
} catch (e) {
  /* ... */
}

// set
window.localStorage.setItem(key, JSON.stringify(value));

And it does not provide any type-specific operation. (e.g. increasing number value, push to array)

// increasing count
const count = JSON.parse(window.localStorage.getItem(key));
window.localStorage.setItem(key, JSON.stringify(count + 1));

// push to array
const arr = JSON.parse(window.localStorage.getItem(key));
window.localStorage.setItem(key, JSON.stringify([...arr, value]));

So storage-typed resolves all things above.

const count = TypedStorageFactory.create("count", 0); // NumberTypedStorage
count.increase();
count.get(); // 1

const arr = TypedStorageFactory.create("array", ["foo"]); // ArrayTypedStorage
arr.pop(); // "foo"
arr.push("bar");
arr.get(); // ["bar"]

/* and any other types... */

API References

  • TypedStorageFactory
  • TypedStorage
  • NumberTypedStorage
  • BooleanTypedStorage
  • ArrayTypedStorage

TypedStorageFactory

Creates TypedStorage by type of passed initial value. Note test code.

TypedStorageFactory.create<T>(key, initialValue, options);
  • create: (key, initialValue, options) => TypedStorage<T> | NumberTypedStorage | BooleanTypedStorage | ArrayTypedStorage<T[number]>
    • returns instanceof TypedStorage by type of passed initial value
    • parameters
      • key: string
        • required
        • unique key for value
      • initialValue: T
        • required
        • any value which TypedStorage will be initialized with
      • options: TypedStorageOptions<T>

TypedStorage

Provides JSON parsing/stringifying. Note test code.

const storage = new TypedStorage<T>(key, initialValue, options);
storage.get();
storage.set(value);
  • constructor: (key, initialValue, options) => TypedStorage<T>

    • returns instanceof TypedStorage by type of passed initial value
    • parameters
      • key: string
        • required
        • unique key for value
      • initialValue: T
        • required
        • any value which TypedStorage will be initialized with
      • options: TypedStorageOptions<T>
  • get: () => T

    • returns current value
  • set: (next) => void

    • sets current value to passed value
    • parameters
      • next: T
        • required
        • next value

TypedStorageOptions

interface TypedStorageOptions<T> {
  storage?: Storage;
}
  • storage: Storage
    • Storage which TypedStorage will use

NumberTypedStorage

Extends number-specific methods based on TypedStorage API. Note test code.

const storage = new NumberTypedStorage(key, initialValue, options);
storage.increase();
storage.decrease();
  • constructor: (key, initialValue, options) => TypedStorage<number>

    • returns instanceof TypedStorage by type of passed initial value
    • parameters
      • key: string
        • required
        • unique key for value
      • initialValue: number
        • required
        • any value which NumberTypedStorage will be initialized with
      • options: TypedStorageOptions<number>
  • increase: () => void

    • adds 1 to current value
  • decrease: () => void

    • subtracts 1 from current value

BooleanTypedStorage

Extends boolean-specific methods based on TypedStorage API. Note test code.

const storage = new BooleanTypedStorage(key, initialValue, options);
storage.toggle();
storage.true();
storage.false();
  • constructor: (key, initialValue, options) => TypedStorage<boolean>

    • returns instanceof TypedStorage by type of passed initial value
    • parameters
      • key: string
        • required
        • unique key for value
      • initialValue: boolean
        • required
        • any value which BooleanTypedStorage will be initialized with
      • options: TypedStorageOptions<boolean>
  • toggle: () => void

    • reverses current value
  • true: () => void

    • sets current value to true
  • false: () => void

    • sets current value to false

ArrayTypedStorage

Extends number-specific methods based on TypedStorage API. Note test code.

const storage = new ArrayTypedStorage<T>(key, initialValue, options);
storage.push(value);
storage.pop();
  • constructor: (key, initialValue, options) => TypedStorage<T[]>

    • returns instanceof TypedStorage by type of passed initial value
    • parameters
      • key: string
        • required
        • unique key for value
      • initialValue: T[]
        • required
        • any value which NumberTypedStorage will be initialized with
      • options: TypedStorageOptions<T[]>
  • push: (value: T) => void

    • appends value to the end of current array
  • pop: () => T | null

    • removes last value of current array. if it is empty, pop returns null.

Keywords

typedstorage

FAQs

Package last updated on 10 Jun 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts