A little way to control Cookies, LocalStorage and SessionStorage without tears
npm install storage-manager-js
# or
yarn add storage-manager-js
# or
pnpm add storage-manager-js
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()
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()
delete(key: string): void
: Deletekey
from your current storagedeleteAll(): void
: Delete all keys from your current storageget<T extends any>(key: string): T | string | undefined
: get the value ofkey
from your current storagehas(key: string): boolean
: check ifkey
exist in your current storagejson<T>(parse: boolean = false): T
: get all storage as object. You can pass a boolean to parse or not your content usingJSON.parse
on your storage. Cookie manager always parse your content.set(key: string, object: any, parameters?: CookieSettings): void
: savekey
withvalue
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
}>;
- Inspired on my experience on using js-cookie/js-cookie
- RFC 6265