@daysnap/utils
Version:
58 lines (50 loc) • 1.31 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true});
var _chunk5PB5B4HHcjs = require('./chunk-5PB5B4HH.cjs');
var _chunkOSEQ7XR6cjs = require('./chunk-OSEQ7XR6.cjs');
// src/storage/factory.ts
function factory(type) {
const fn = window[type];
const setItem = (key, val) => {
fn.setItem(key, JSON.stringify(val));
return val;
};
const getItem = (key, defaultVal = null) => {
const val = fn.getItem(key);
if (val === null) {
return defaultVal;
}
return JSON.parse(val);
};
const removeItem = (key) => {
fn.removeItem(key);
};
const updateItem = (key, val) => {
const prev = getItem(key);
if (_chunk5PB5B4HHcjs.isArray.call(void 0, val)) {
val = [...prev || [], ...val];
} else if (_chunkOSEQ7XR6cjs.isObject.call(void 0, val)) {
val = { ...prev, ...val };
}
return setItem(key, val);
};
const clear = () => {
fn.clear();
};
const generate = (key) => {
return {
setItem: (val) => setItem(key, val),
getItem: (defaultVal) => getItem(key, defaultVal),
removeItem: () => removeItem(key),
updateItem: (val) => updateItem(key, val)
};
};
return {
setItem,
getItem,
removeItem,
updateItem,
clear,
generate
};
}
exports.factory = factory;