@codelet/core
Version:
mini core
31 lines (30 loc) • 818 B
JavaScript
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),
};
}