backendless
Version:
Backendless JavaScript SDK for Node.js and the browser
65 lines (63 loc) • 2 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
function migrateLegacyStorageData(storage, legacyStorageName) {
//TODO: this will be removed in the nearest release
if (!localStorage.getItem(storage.storageName)) {
var legacyStorageData = localStorage.getItem(legacyStorageName);
if (legacyStorageData) {
localStorage.setItem(storage.storageName, legacyStorageData);
localStorage.removeItem(legacyStorageName);
}
}
}
var LocalStorage = /*#__PURE__*/function () {
function LocalStorage(storageName, legacyStorageName) {
(0, _classCallCheck2["default"])(this, LocalStorage);
this.storageName = storageName;
migrateLegacyStorageData(this, legacyStorageName);
}
(0, _createClass2["default"])(LocalStorage, [{
key: "getStore",
value: function getStore() {
try {
return JSON.parse(localStorage.getItem(this.storageName)) || {};
} catch (e) {
// eslint-disable-next-line no-console
console.warn('Could not parse data from LocalStorage', e);
}
return {};
}
}, {
key: "setStore",
value: function setStore(data) {
localStorage.setItem(this.storageName, JSON.stringify(data));
}
}, {
key: "get",
value: function get(key) {
return this.getStore()[key];
}
}, {
key: "set",
value: function set(key, value) {
var store = this.getStore();
store[key] = value;
this.setStore(store);
}
}, {
key: "remove",
value: function remove(key) {
var store = this.getStore();
delete store[key];
this.setStore(store);
}
}]);
return LocalStorage;
}();
exports["default"] = LocalStorage;