@startpage/local-storage
Version:
Local storage management for your startpage
31 lines (30 loc) • 1.42 kB
JavaScript
;
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;