65 lines
1.5 KiB
JavaScript
65 lines
1.5 KiB
JavaScript
|
/**
|
||
|
* 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);
|