jc-biz-components
Version:
jc component library based on Antd
78 lines (68 loc) • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var storage = { version: '1.3.17' };
storage.has = function (key) {
return storage.get(key) !== undefined;
};
storage.transact = function (key, defaultVal, transactionFn) {
var val = '';
if (transactionFn === null) {
transactionFn = defaultVal;
defaultVal = null;
}
if (defaultVal === null) {
defaultVal = {};
}
val = storage.get(key, defaultVal);
transactionFn(val);
storage.set(key, val);
};
storage.serialize = function (value) {
return JSON.stringify(value);
};
storage.deserialize = function (value) {
if (typeof value !== 'string') {
return undefined;
}
try {
return JSON.parse(value);
} catch (e) {
return value || undefined;
}
};
storage.set = function (key, val) {
if (val === undefined) {
return storage.remove(key);
}
localStorage.setItem(key, storage.serialize(val));
return val;
};
storage.get = function (key, defaultVal) {
var val = storage.deserialize(localStorage.getItem(key));
return val === undefined ? defaultVal : val;
};
storage.remove = function (key) {
return localStorage.removeItem(key);
};
storage.clear = function () {
return localStorage.clear();
};
storage.getAll = function () {
var ret = {};
storage.forEach(function (key, val) {
ret[key] = val;
});
return ret;
};
storage.forEach = function (callback) {
var i = 0;
var key = '';
for (i = 0; i < localStorage.length; i++) {
key = localStorage.key(i);
callback(key, storage.get(key));
}
};
exports['default'] = storage;
module.exports = exports['default'];