UNPKG

@startpage/local-storage

Version:

Local storage management for your startpage

31 lines (30 loc) 1.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.usePrefixStorage = void 0; const _1 = require("."); const STORAGE = window.localStorage; const getPrefixedKeys = (prefix) => Object.keys(STORAGE) .filter(key => key.startsWith(prefix)) .map(key => key.replace(prefix, "")); const setPrefixedItem = (prefix, key, value) => STORAGE.setItem(prefix + key, value); const getPrefixedItem = (prefix, key) => STORAGE.getItem(prefix + key); const removePrefixedItem = (prefix, key) => STORAGE.removeItem(prefix + key); const clearPrefixed = (prefix) => getPrefixedKeys(prefix).forEach(key => removePrefixedItem(prefix, key)); const getPrefixedlength = (prefix) => getPrefixedKeys(prefix).length; const getPrefixedStorage = (prefix) => { const storage = {}; getPrefixedKeys(prefix).forEach(key => (storage[key] = getPrefixedItem(prefix, key))); return storage; }; const usePrefixStorage = () => { const prefix = (0, _1.useStoragePrefix)(); return { clear: () => clearPrefixed(prefix), length: () => getPrefixedlength(prefix), setItem: (key, value) => setPrefixedItem(prefix, key, value), getItem: key => getPrefixedItem(prefix, key), removeItem: key => removePrefixedItem(prefix, key), getStorage: () => getPrefixedStorage(prefix), }; }; exports.usePrefixStorage = usePrefixStorage;