autsequi
Version:
Web3modal's provider layer abstraction for simple implementation of web3 wallet connections
44 lines (38 loc) • 874 B
text/typescript
export let local: Storage;
if (
typeof window !== 'undefined' &&
typeof (window as any).localStorage !== 'undefined'
) {
local = (window as any).localStorage;
}
export const setLocal = (key: string, data: any) => {
const jsonData = JSON.stringify(data);
if (local) {
local.setItem(key, jsonData);
}
};
export const getLocal = (key: string) => {
let data = null;
let raw = null;
if (local) {
raw = local.getItem(key);
}
if (raw && typeof raw === 'string') {
try {
data = JSON.parse(raw);
} catch (error) {
return null;
}
}
return data;
};
export const removeLocal = (key: string) => {
if (local) {
local.removeItem(key);
}
};
export const updateLocal = (key: string, data: any) => {
const localData = getLocal(key) || {};
const mergedData = { ...localData, ...data };
setLocal(key, mergedData);
};