/storage-manager-js

A little way to control Cookies, LocalStorage and SessionStorage without tears

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

StorageManager

A little way to control Cookies, LocalStorage and SessionStorage without tears

Install

npm install storage-manager-js
# or
yarn add storage-manager-js
# or
pnpm add storage-manager-js

Using

Cookie, LocalStorage and SessionStorage has the same API, both implement TypeStorage

Using with cookies/document.cookie

import { Cookie } from "storage-manager-js"


// get object or string from cookies
const token = Cookie.get("token") // at this moment, is undefined

// Learn more about cookies here: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies
// and here for useSecure/sameSite: https://www.chromestatus.com/feature/5088147346030592
// and here too https://www.chromium.org/updates/same-site
Cookie.set("token", token, { useSecure: false })

type MyCookieStorage = {}

// get all cookies as object
Cookie.json<T>()

// check if key exist in cookies
Cookie.has("token")

// delete one cookie by key
Cookie.delete("token")

// delete all cookies
Cookie.deleteAll()

Example using LocalStorage. The same can be done using SessionStorage

import { LocalStorage } from "storage-manager-js"


// get object or string from localStorage
const token = LocalStorage.get("token") // at this moment, is undefined

LocalStorage.set("token", token, { useSecure: false })

// get all storage
LocalStorage.json()

// check if key exist in storage
LocalStorage.has("token")

// delete one item by key
LocalStorage.delete("token")

// delete all items
LocalStorage.deleteAll()

API Reference

  • delete(key: string): void: Delete key from your current storage
  • deleteAll(): void: Delete all keys from your current storage
  • get<T extends any>(key: string): T | string | undefined: get the value of key from your current storage
  • has(key: string): boolean: check if key exist in your current storage
  • json<T>(parse: boolean = false): T: get all storage as object. You can pass a boolean to parse or not your content using JSON.parse on your storage. Cookie manager always parse your content.
  • set(key: string, object: any, parameters?: CookieSettings): void: save key with value in your current storage. Note for Cookie:
// Cookie.set has this optional arguments
export type SetCookies = Partial<{
    domain: string; // the domain of cookies
    expires: CookieAge; // expires in
    maxAge: CookieAge; // maxAge of cookie
    multiDomain?: boolean; // apply multi domain logic
    partitioned: boolean; // 
    path: string; // the path that cookie will be used
    sameSite: "strict" | "lax" | "none" | ""; // same site rules
    useSecure: boolean; // http or https accepted
}>;

References