diff options
Diffstat (limited to 'src/js/SessionStorage.js')
-rw-r--r-- | src/js/SessionStorage.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/js/SessionStorage.js b/src/js/SessionStorage.js new file mode 100644 index 00000000..b25f395e --- /dev/null +++ b/src/js/SessionStorage.js @@ -0,0 +1,45 @@ +'use strict'; + +const SessionStorage = { + // key can be one string, or array of strings + get: function(key) { + let result = {}; + if (Array.isArray(key)) { + key.forEach(function (element) { + try { + result = {...result, ...JSON.parse(sessionStorage.getItem(element))}; + } catch (e) { + console.error(e); + } + }); + } else { + const keyValue = sessionStorage.getItem(key); + if (keyValue) { + try { + result = JSON.parse(keyValue); + } catch (e) { + console.error(e); + } + } + } + + return result; + }, + set: function(input) { + Object.keys(input).forEach(function (element) { + const tmpObj = {}; + tmpObj[element] = input[element]; + try { + sessionStorage.setItem(element, JSON.stringify(tmpObj)); + } catch (e) { + console.error(e); + } + }); + }, + remove: function(item) { + sessionStorage.removeItem(item); + }, + clear: function() { + sessionStorage.clear(); + }, +}; |