UNPKG

vue-ls

Version:

Vue plugin for work with LocalStorage from Vue context

85 lines (70 loc) 1.23 kB
/* eslint class-methods-use-this: off */ let ls = {}; class MemoryStorageInterface { constructor() { Object.defineProperty(this, 'length', { /** * Define length property * * @return {number} */ get() { return Object.keys(ls).length; }, }); } /** * Get item * * @param {string} name * @returns {*} */ getItem(name) { return name in ls ? ls[name] : null; } /** * Set item * * @param {string} name * @param {*} value * @returns {boolean} */ setItem(name, value) { ls[name] = value; return true; } /** * Remove item * * @param {string} name * @returns {boolean} */ removeItem(name) { const found = name in ls; if (found) { return delete ls[name]; } return false; } /** * Clear storage * * @returns {boolean} */ clear() { ls = {}; return true; } /** * Get item by key * * @param {number} index * @returns {*} */ key(index) { const keys = Object.keys(ls); return typeof keys[index] !== 'undefined' ? keys[index] : null; } } const MemoryStorage = new MemoryStorageInterface(); export { MemoryStorage };