UNPKG

@resk/core

Version:

An innovative TypeScript framework that empowers developers to build applications with a fully decorator-based architecture for efficient resource management. By combining the power of decorators with a resource-oriented design, DecorRes enhances code cla

1 lines 2.37 kB
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var m=require('../platform'),json=require('../utils/json'),a=require('../utils/isNonNullString');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var m__default=/*#__PURE__*/_interopDefault(m);var a__default=/*#__PURE__*/_interopDefault(a);const n=class n{static get storage(){var s;const t=Reflect.getMetadata(n.sessionStorageMetaData,n);if(l(t)&&(this._storage=t),this._storage)return this._storage;if(m__default.default.isClientSide()&&typeof window!="undefined"&&window.localStorage&&((s=window.localStorage)!=null&&s.getItem))this._storage={get:i=>window.localStorage.getItem(i),set:(i,o)=>window.localStorage.setItem(i,o),remove:i=>window.localStorage.removeItem(i),removeAll:()=>window.localStorage.clear()};else {let i={};this._storage={get:o=>i[o],set:(o,d)=>i[o]=d,remove:o=>delete i[o],removeAll:()=>i={}};}return this._storage}static set storage(t){l(t)&&Reflect.defineMetadata(n.sessionStorageMetaData,t,n);}static get allKeyPrefix(){return this._allKeyPrefix&&a__default.default(this._allKeyPrefix)?this._allKeyPrefix:""}static set allKeyPrefix(t){a__default.default(t)&&(this._allKeyPrefix=t);}static sanitizeKey(t){if(!t||!a__default.default(t))return "";t=t.trim().replace(/\s+/g,"").replace(/ /gi,"");const s=a__default.default(this.allKeyPrefix)&&this._allKeyPrefix||"";return s?`${s}-${t}`:t}};n.sessionStorageMetaData=Symbol("sessionStorage"),n._allKeyPrefix=void 0;let r=n;function g(e){return r.sanitizeKey(e)}const f=(e,t)=>(e=e&&json.JsonHelper.stringify(e,t),e==null&&(e=""),e),u=e=>{if(e!=null)return json.JsonHelper.parse(e)},y=(e,t,s=true)=>{var i;(i=r==null?void 0:r.storage)==null||i.set(e,f(t,s));},S=e=>{if(e=g(e),r.storage&&e&&typeof e=="string"){const t=r.storage.get(e);return u(t)}},p=e=>{if(e=g(e),r.storage&&e&&typeof e=="string")return r.storage.remove(e)},I=()=>{if(r.storage)return r.storage.removeAll()},l=e=>{if(!e)return false;try{return ["get","set","remove","removeAll"].every(t=>typeof e[t]=="function")}catch(t){return false}};var v={get:S,set:y,remove:p,handleGetValue:u,sanitizeKey:g,handleSetValue:f,isValidStorage:l,SessionManager:r,removeAll:I};function _(){return function(e){try{const t=new e;if(!l(t))return;r.storage=t;}catch(t){console.error(t," registering session storage");}}}exports.SessionStorage=_;exports.default=v;