@mopinion/deploy
Version:
Deploy your Mopinion feedback forms with ease
64 lines (63 loc) • 2.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.clearStorage = clearStorage;
exports.getSessionStorage = getSessionStorage;
exports.getStorage = getStorage;
exports.setSessionStorage = setSessionStorage;
exports.setStorage = setStorage;
exports.storageKey = void 0;
var _utils = require("../utils");
var _excluded = ["time"];
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
var storageKey = exports.storageKey = 'mopDeploy';
function setStorage(key, updateState) {
var storageType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'localStorage';
var storage = window[storageType];
try {
(0, _utils.schedule)(function () {
var _JSON$parse;
var newState = (_JSON$parse = JSON.parse(storage.getItem(storageKey))) !== null && _JSON$parse !== void 0 ? _JSON$parse : {};
if (newState[key] && _typeof(newState[key]) === 'object') {
Object.assign(newState[key], updateState);
} else {
newState[key] = updateState;
}
storage.setItem(storageKey, JSON.stringify(newState));
});
} catch (e) {}
}
function getStorage(key) {
var storageType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'localStorage';
var storage = window[storageType];
try {
return JSON.parse(storage.getItem(storageKey))[key];
} catch (e) {
return {};
}
}
function setSessionStorage(key) {
var updateState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
updateState.time = new Date().getTime() + 60000 * 10;
setStorage(key, updateState, 'sessionStorage');
}
function getSessionStorage(key) {
var _getStorage;
var _ref = (_getStorage = getStorage(key, 'sessionStorage')) !== null && _getStorage !== void 0 ? _getStorage : {},
time = _ref.time,
data = _objectWithoutProperties(_ref, _excluded);
var isExpired = Date.now() > Number(time);
if (isExpired) {
return {};
}
return data;
}
function clearStorage() {
try {
localStorage.removeItem(storageKey);
} catch (e) {}
}
//# sourceMappingURL=index.js.map