tongtong-utils
Version:
String类
140 lines (132 loc) • 5.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var store = {
_data__: '_data__',
_task__: '_task__',
group: '',
timer: new Map(),
get: function get(key) {
var group = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : store.group;
if (localStorage) {
var value = localStorage.getItem(group + store._data__ + key);
if (value) {
var j = JSON.parse(value);
if (j.time && j.time < new Date()) {
localStorage.removeItem(group + store._data__ + key);
return null;
}
return j.data;
}
}
return null;
},
set: function set(key, value, time) {
var group = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : store.group;
if (localStorage) {
var t = null;
if (time && time.length >= 2) {
try {
t = new Date();
var n = parseInt(time.substring(0, time.length - 1), 10);
var f = time.substring(time.length - 1, time.length);
switch (f) {
case 's':
t.setSeconds(t.getSeconds() + n);
break;
case 'm':
t.setMinutes(t.getMinutes() + n);
break;
case 'h':
t.setHours(t.getHours() + n);
break;
case 'd':
t.setDate(t.getDate() + n);
break;
case 'w':
t.setDate(t.getDate() + n * 7);
break;
case 'M':
t.setMonth(t.getMonth() + n);
break;
case 'y':
t.setFullYear(t.getFullYear() + n);
break;
}
t = t.getTime();
} catch (e) {
t = null;
}
}
try {
localStorage.setItem(group + store._data__ + key, JSON.stringify({ data: value, time: t }));
} catch (ex) {
this.clear(true);
localStorage.setItem(group + store._data__ + key, JSON.stringify({ data: value, time: t }));
}
return true;
}
return false;
},
remove: function remove(key) {
var group = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : store.group;
if (localStorage) {
localStorage.removeItem(group + store._data__ + key);
}
},
clear: function clear(justCache) {
var group = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : store.group;
if (localStorage) {
for (var i = 0; i < localStorage.length;) {
if (localStorage.key(i).indexOf(group + store._data__) !== -1) {
if (justCache) {
var value = localStorage.getItem(localStorage.key(i));
if (value) {
var j = JSON.parse(value);
if (j.time && j.time < new Date()) {
if (localStorage.removeItem) {
localStorage.removeItem(localStorage.key(i));
} else {
return;
}
} else {
i++;
}
}
} else {
if (localStorage.removeItem) {
localStorage.removeItem(localStorage.key(i));
} else {
return;
}
}
} else {
i++;
}
}
}
},
listen: function listen(callback, key, time) {
if (localStorage) {
clearInterval(store.timer.get(key));
store.lastTimer = setInterval(function () {
var param = store.get(store._task__ + key, '');
if (param && callback) {
callback(param);
store.remove(store._task__ + key);
}
}, time || 100);
store.timer.set(key, store.lastTimer);
return store.lastTimer;
}
},
removeListen: function removeListen() {
var timer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : store.lastTimer;
clearInterval(timer);
},
trigger: function trigger(param, key, time) {
store.set(store._task__ + key, param, time || '10s', '');
}
};
exports.default = store;