/** * Dummy implementation of Storage interface with empty methods. */ class DummyLocalStorage { /** * Empty function */ getItem() { } /** * Empty function */ setItem() { } /** * Empty function */ removeItem() { } } /** * Wrapper class for browser's local storage object. */ class JitsiLocalStorage extends DummyLocalStorage { /** * @constructor * @param {Storage} storage browser's local storage object. */ constructor(storage) { super(); this.storage = storage || new DummyLocalStorage(); } /** * Returns that passed key's value. * @param {string} keyName the name of the key you want to retrieve * the value of. * @returns {String|null} the value of the key. If the key does not exist, * null is returned. */ getItem(keyName) { return this.storage.getItem(keyName); } /** * Adds a key to the storage, or update key's value if it already exists. * @param {string} keyName the name of the key you want to create/update. * @param {string} keyValue the value you want to give the key you are * creating/updating. */ setItem(keyName, keyValue) { return this.storage.setItem(keyName, keyValue); } /** * Remove a key from the storage. * @param {string} keyName the name of the key you want to remove. */ removeItem(keyName) { return this.storage.removeItem(keyName); } } export default new JitsiLocalStorage(window.localStorage);