UNPKG

lamed_io

Version:
88 lines (77 loc) 2.5 kB
/* jshint esversion: 6 */ // ------------------------------------------------------ const _test = require('lamed_test') const { Ok, notOk, notOk_Then, Equal, notEqual, con, testAND } = _test // eslint-disable-line // con.traceSet(0) con.trace('Starting localstorage_functions.js...') const _unique = require('lodash.uniq') // npm install lodash --save /** * Return value from the local storage * @param localDef - The localstorage that was defined * @param name * @param defaultVal * @returns {string - the value that was stored} */ function storageGet (localDef, name, defaultVal = '') { let result = localDef.getItem(name) if (notOk(result)) { result = defaultVal localDef.setItem(name, result) } return result } /** * Set the local storage with a value * @param localDef * @param name * @param newValue */ function storageSet (localDef, name, newValue) { localDef.setItem(name, '' + newValue) // Save to local storage } /** * Show the history * @param localDef - The localstorage that was defined * @param max int - The max history items */ function storageGetHistory (localDef, max = 10) { let items = [] for (let ii = 1; ii <= max; ii++) { const no = `${ii}` const item = localDef.getItem(no) if (item !== 'null' && item !== null) items.push(item) // con.log({ ii, max, item }) } if (items.length > 1) items = _unique(items) // Make sure all is unique return items } /** * Return item from history items * @param localDef - The localstorage that was defined * @param itemNo * @returns {*} */ function storageGetHistoryItem (localDef, itemNo = 1) { const items = storageGetHistory(localDef) return items[itemNo - 1] } /** * Save item to the history * @param localDef - The localstorage that was defined * @param itemNew */ function storagePushHistory (localDef, itemNew) { const lastItem = localDef.getItem('1') if (itemNew === lastItem) return // Minimize duplicates // con.log( { itemNew }) let items = storageGetHistory(localDef) items.unshift(itemNew) // Add at the start items = _unique(items) // Make sure all is unique for (let ii = 0; ii < items.length; ii++) { const no = `${ii + 1}` const item = items[ii] storageSet(localDef, no, item) } } // Exports -------------------------- module.exports = { storageGet, storageSet, storageGetHistory, storageGetHistoryItem, storagePushHistory }