|  |  |  | /* 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); | 
					
						
							|  |  |  | })(); |