daily pastebin goal
33%
SHARE
TWEET

Untitled

a guest Aug 13th, 2017 49 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var AppStorage = function(select){
  2.     var self = this;
  3.     self.storageObject = chrome.storage.local;
  4.  
  5.     if(select && select.settings && chrome.storage && chrome.storage.sync){
  6.         self.storageObject = chrome.storage.sync;
  7.     }
  8.  
  9.     self.get = function(key){
  10.         return new Promise(function(resolve, reject){
  11.             if(self.storageObject){
  12.                 self.storageObject.get(key, function(kvs){
  13.                     if (!chrome.runtime.lastError){
  14.                         if(kvs && kvs[key]){
  15.                             resolve(kvs[key]);
  16.                         }else{
  17.                             reject("[Error] Key not available: "+key)
  18.                         }
  19.                     }else{
  20.                         console.log("[Error] Error on storage get of key: "+key);
  21.                         reject(chrome.runtime.lastError);
  22.                     }
  23.                 });
  24.             }else{
  25.                 reject("[Error] Sync storage is not available.")
  26.             }
  27.         });
  28.     }
  29.  
  30.     self.getAll = function(){
  31.         return new Promise(function(resolve, reject){
  32.             if(self.storageObject){
  33.                 self.storageObject.get(function(kvs){
  34.                     if (!chrome.runtime.lastError){
  35.                         resolve(kvs);
  36.                     }else{
  37.                         console.log("[Error] Error on storage get of key: "+key);
  38.                         reject(chrome.runtime.lastError);
  39.                     }
  40.                 });
  41.             }else{
  42.                 reject("[Error] Sync storage is not available.")
  43.             }
  44.         });
  45.     }
  46.  
  47.     self.set = function(keyValuePair){
  48.         return new Promise(function(resolve, reject){
  49.             if(self.storageObject){
  50.                 self.storageObject.set(keyValuePair, function(){
  51.                     if (!chrome.runtime.lastError){
  52.                         resolve(true);
  53.                     }else{
  54.                         console.log("[Error] Error on storage set of keyPair");
  55.                         reject(chrome.runtime.lastError);
  56.                     }
  57.                 });
  58.             }else{
  59.                 reject("[Error] Sync storage is not available.")
  60.             }
  61.         });
  62.     }
  63.  
  64.     self.remove = function(key){
  65.         return new Promise(function(resolve, reject){
  66.             if(self.storageObject){
  67.                 self.storageObject.remove(key, function(){
  68.                     if (!chrome.runtime.lastError){
  69.                         resolve(true);
  70.                     }else{
  71.                         console.log("[Error] Error on storage remove of key: "+key);
  72.                         reject(chrome.runtime.lastError);
  73.                     }
  74.                 });
  75.             }else{
  76.                 reject("[Error] Sync storage is not available.")
  77.             }
  78.         });
  79.     }
  80.  
  81.     self.removeAll = function(){
  82.         return new Promise(function(resolve, reject){
  83.             if(self.storageObject){
  84.                 self.storageObject.clear(function(){
  85.                     if (!chrome.runtime.lastError){
  86.                         resolve(true);
  87.                     }else{
  88.                         console.log("[Error] Error on storage get of removeAll");
  89.                         reject(chrome.runtime.lastError);
  90.                     }
  91.                 });
  92.             }else{
  93.                 reject("[Error] Sync storage is not available.")
  94.             }
  95.         });
  96.     }
  97. }
RAW Paste Data
Top