Browse Source

Refactor local Storage

pull/3671/head
Artur Arseniev 5 years ago
parent
commit
4ac1fda3e0
  1. 52
      src/storage_manager/model/LocalStorage.js

52
src/storage_manager/model/LocalStorage.js

@ -1,6 +1,7 @@
import Backbone from 'backbone';
import { Model } from 'backbone';
import { hasWin } from 'utils/mixins';
export default Backbone.Model.extend({
export default Model.extend({
defaults: {
checkLocal: true
},
@ -8,31 +9,28 @@ export default Backbone.Model.extend({
/**
* @private
*/
store(data, clb) {
this.checkStorageEnvironment();
for (var key in data) localStorage.setItem(key, data[key]);
if (typeof clb == 'function') {
clb();
store(data, clb = () => {}) {
if (this.hasLocal()) {
for (let key in data) localStorage.setItem(key, data[key]);
}
clb && clb();
},
/**
* @private
*/
load(keys, clb) {
this.checkStorageEnvironment();
var result = {};
for (var i = 0, len = keys.length; i < len; i++) {
var value = localStorage.getItem(keys[i]);
if (value) result[keys[i]] = value;
load(keys, clb = () => {}) {
const result = {};
if (this.hasLocal()) {
for (let i = 0, len = keys.length; i < len; i++) {
const value = localStorage.getItem(keys[i]);
if (value) result[keys[i]] = value;
}
}
if (typeof clb == 'function') {
clb(result);
}
clb && clb(result);
return result;
},
@ -41,9 +39,9 @@ export default Backbone.Model.extend({
* @private
*/
remove(keys) {
this.checkStorageEnvironment();
if (!this.hasLocal()) return;
for (var i = 0, len = keys.length; i < len; i++)
for (let i = 0, len = keys.length; i < len; i++)
localStorage.removeItem(keys[i]);
},
@ -51,8 +49,14 @@ export default Backbone.Model.extend({
* Check storage environment
* @private
* */
checkStorageEnvironment() {
if (this.get('checkLocal') && !localStorage)
console.warn("Your browser doesn't support localStorage");
hasLocal() {
const win = hasWin();
if (this.get('checkLocal') && (!win || !localStorage)) {
win && console.warn("Your browser doesn't support localStorage");
return false;
}
return true;
}
});

Loading…
Cancel
Save