Browse Source

Update LocalStorage

pull/4223/head
Artur Arseniev 5 years ago
parent
commit
0884befc80
  1. 43
      src/storage_manager/model/LocalStorage.js

43
src/storage_manager/model/LocalStorage.js

@ -1,37 +1,29 @@
import { Model } from 'backbone'; import { Model } from 'common';
import { hasWin } from 'utils/mixins'; import { hasWin } from 'utils/mixins';
const noLocalStorage = 'localStorage not available'; const noLocalStorage = 'localStorage not available';
export default Model.extend({ export default class LocalStorage extends Model {
defaults: {
checkLocal: true,
},
/**
* @private
*/
async store(data, resolve, reject, opts) { async store(data, resolve, reject, opts) {
try { try {
if (this.hasLocal()) { if (this.hasLocal(opts)) {
localStorage.setItem(opts.key, JSON.stringify(data)); localStorage.setItem(opts.key, JSON.stringify(data));
return resolve(data); resolve(data);
} else { } else {
reject(noLocalStorage); reject(noLocalStorage);
} }
} catch (error) { } catch (error) {
reject(error); reject(error);
} }
},
/** return data;
* @private }
*/
async load(resolve, reject, opts) { async load(resolve, reject, opts) {
let result = {}; let result = {};
try { try {
if (this.hasLocal()) { if (this.hasLocal(opts)) {
result = JSON.parse(localStorage.getItem(opts.key) || '{}'); result = JSON.parse(localStorage.getItem(opts.key) || '{}');
resolve(result); resolve(result);
} else { } else {
@ -42,26 +34,17 @@ export default Model.extend({
} }
return result; return result;
}, }
/**
* @private
*/
remove(keys) {
if (!this.hasLocal()) return;
for (let i = 0, len = keys.length; i < len; i++) localStorage.removeItem(keys[i]);
},
/** /**
* Check storage environment * Check storage environment
* @private * @private
* */ * */
hasLocal() { hasLocal(opts = {}) {
if (this.get('checkLocal') && (!hasWin() || !localStorage)) { if (opts.checkLocal && (!hasWin() || !localStorage)) {
return false; return false;
} }
return true; return true;
}, }
}); }

Loading…
Cancel
Save