UNPKG

@codelet/core

Version:
31 lines (30 loc) 818 B
import { isArray, isObject } from '@daysnap/utils'; import { col } from '../codelet'; function setItem(key, val) { col.setStorageSync(key, val); return val; } function getItem(key, defaultVal) { return col.getStorageSync(key) || defaultVal; } function removeItem(key) { col.removeStorageSync(key); } function updateItem(key, val) { const prev = getItem(key); if (isObject(val)) { val = { ...(prev ?? {}), ...val }; } else if (isArray(val)) { val = [...(prev ?? []), ...val]; } return setItem(key, val); } export function createStorage(key) { return { setItem: (val) => setItem(key, val), getItem: (defaultVal) => getItem(key, defaultVal), removeItem: () => removeItem(key), updateItem: (val) => updateItem(key, val), }; }