UNPKG

@fanam-pkg/core-utils

Version:

Core Functions are managed here for quick web development

39 lines (32 loc) 1.22 kB
export const useStorage = () => { const getStorage = <T = string>(key: string, isLocalStorage = false): T | null => { let value: T | null = null const storageValue = typeof window !== "undefined" ? (isLocalStorage ? localStorage.getItem(key) : sessionStorage.getItem(key)) : "" try { if (storageValue) value = JSON.parse(storageValue) as T } catch (error) { value = storageValue as T } return value } const setStorage = <T>(key: string, value: T, isLocalStorage = false) => { const payload = typeof value === "string" ? value : JSON.stringify(value) if (isLocalStorage) localStorage.setItem(key, payload) else sessionStorage.setItem(key, payload) } const removeStorage = (key: string, isLocalStorage = false) => isLocalStorage ? localStorage.removeItem(key) : sessionStorage.removeItem(key) const clearStorage = (isLocalStorage = false) => (isLocalStorage ? localStorage.clear() : sessionStorage.clear()) const clearAllStorage = () => { localStorage.clear() sessionStorage.clear() } return { getStorage, setStorage, removeStorage, clearAllStorage, clearStorage, } }