From 96e3e2a5890d16905677dc54df6db5f861d915ac Mon Sep 17 00:00:00 2001 From: sandeep rawat Date: Mon, 29 Jun 2020 13:27:20 +0530 Subject: [PATCH] - Storage Util method added --- dist/lib.js | 2 +- src/StorageUtils.js | 81 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+), 1 deletion(-) diff --git a/dist/lib.js b/dist/lib.js index 646063a..f5bd7c1 100644 --- a/dist/lib.js +++ b/dist/lib.js @@ -1 +1 @@ -module.exports=function(r){var n={};function o(e){if(n[e])return n[e].exports;var t=n[e]={i:e,l:!1,exports:{}};return r[e].call(t.exports,t,t.exports,o),t.l=!0,t.exports}return o.m=r,o.c=n,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)o.d(r,n,function(e){return t[e]}.bind(null,n));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DateUtils=t.StorageUtils=void 0;var n=u(r(1)),o=u(r(2));function u(e){return e&&e.__esModule?e:{default:e}}t.StorageUtils=n.default,t.DateUtils=o.default},function(e,t,r){},function(e,t,r){}]); \ No newline at end of file +module.exports=function(o){var r={};function n(e){if(r[e])return r[e].exports;var t=r[e]={i:e,l:!1,exports:{}};return o[e].call(t.exports,t,t.exports,n),t.l=!0,t.exports}return n.m=o,n.c=r,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(o,r,function(e){return t[e]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DateUtils=t.StorageUtils=void 0;var r=u(o(1)),n=u(o(2));function u(e){return e&&e.__esModule?e:{default:e}}t.StorageUtils=r.default,t.DateUtils=n.default},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n={};t.default={get:function(e){var t=n[e]||window.localStorage.getItem(e);return function(t){try{return JSON.parse(t)}catch(e){return t}}(t)},set:function(t,o){"object"===(void 0===o?"undefined":r(o))&&(o=JSON.stringify(o));try{window.localStorage.setItem(t,o)}catch(e){n[t]=o}},has:function(e){return n.hasOwnProperty(e)||null!==window.localStorage.getItem(e)},remove:function(e){window.localStorage.removeItem(e),delete n[e]},removeAll:function(){n={},window.localStorage.clear()}}},function(e,t,o){}]); \ No newline at end of file diff --git a/src/StorageUtils.js b/src/StorageUtils.js index e69de29..72f8353 100644 --- a/src/StorageUtils.js +++ b/src/StorageUtils.js @@ -0,0 +1,81 @@ +/** + * @name StorageMap object used for when Local Storage quota exceeded + */ +let StorageMap = {}; + +/** + * @function strToJson + * @param {string} str + * @description string to JSON object conversation + */ +const strToJson = (str) => { + try { + return JSON.parse(str); + } catch (e) { + return str; + } +} + +/** + * @function _get + * @param {string} key + * @description get value from localstorage by key name + */ +const _get = (key) => { + let value = StorageMap[key] || window.localStorage.getItem(key); + value = strToJson(value); + return value; +} + +/** + * @function _set + * @param {string} key + * @param {string} value + * @description set value to localstorage + */ +const _set = (key, value) => { + if (typeof value === 'object') { + value = JSON.stringify(value); + } + try { + window.localStorage.setItem(key, value); + } catch (e) { + StorageMap[key] = value; + } +} + +/** + * @function _has + * @param {string} key + * @description check key available in localstorage + */ +const _has = (key) => { + return (StorageMap.hasOwnProperty(key) || window.localStorage.getItem(key) !== null); +} + +/** + * @function _remove + * @param {string} key + * @description remove key from localstorage + */ +const _remove = (key) => { + window.localStorage.removeItem(key); + delete StorageMap[key]; +} + +/** + * @function _removeAll + * @description remove all items from localstorage + */ +const _removeAll = () => { + StorageMap = {}; + window.localStorage.clear(); +} + +export default { + get: _get, + set: _set, + has: _has, + remove: _remove, + removeAll: _removeAll +}; \ No newline at end of file