UNPKG

@daysnap/utils

Version:
58 lines (50 loc) 1.31 kB
"use strict";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;