/* global window, textsecure, localStorage */ // eslint-disable-next-line func-names (function() { /** ********************************************** *** Utilities to store data in local storage *** *********************************************** */ window.textsecure = window.textsecure || {}; window.textsecure.storage = window.textsecure.storage || {}; // Overrideable storage implementation window.textsecure.storage.impl = window.textsecure.storage.impl || { /** *************************** *** Base Storage Routines *** **************************** */ put(key, value) { if (value === undefined) throw new Error('Tried to store undefined'); localStorage.setItem(`${key}`, textsecure.utils.jsonThing(value)); }, get(key, defaultValue) { const value = localStorage.getItem(`${key}`); if (value === null) return defaultValue; return JSON.parse(value); }, remove(key) { localStorage.removeItem(`${key}`); }, }; window.textsecure.storage.put = (key, value) => textsecure.storage.impl.put(key, value); window.textsecure.storage.get = (key, defaultValue) => textsecure.storage.impl.get(key, defaultValue); window.textsecure.storage.remove = key => textsecure.storage.impl.remove(key); })();