mst-persist
Version:
Persist and hydrate MobX-state-tree stores
3 lines (2 loc) • 1.68 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("mobx-state-tree");function t(){return(t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var r={clear:function(){return n((function(){return window.localStorage.clear()}))},getItem:function(e){return n((function(){return window.localStorage.getItem(e)}))},removeItem:function(e){return n((function(){return window.localStorage.removeItem(e)}))},setItem:function(e,t){return n((function(){return window.localStorage.setItem(e,t)}))}};function n(e){try{for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return Promise.resolve(e.apply(void 0,r))}catch(e){return Promise.reject(e)}}var o=function(n,o,a){void 0===a&&(a={});var u=a.storage,c=a.jsonify,s=void 0===c||c,l=a.whitelist,f=a.blacklist;if("undefined"==typeof window||void 0===window.localStorage||u&&u!==window.localStorage||(u=r),!u)return Promise.reject("localStorage (the default storage engine) is not supported in this environment. Please configure a different storage engine via the `storage:` option.");var d=i(l),g=i(f);return e.onSnapshot(o,(function(e){var r=t({},e);Object.keys(r).forEach((function(e){l&&!d[e]&&delete r[e],f&&g[e]&&delete r[e]}));var o=s?JSON.stringify(r):r;u.setItem(n,o)})),u.getItem(n).then((function(t){var r="string"!=typeof t?t:JSON.parse(t);r&&e.applySnapshot(o,r)}))};function i(e){return e?e.reduce((function(e,t){return e[t]=!0,e}),{}):{}}exports.default=o,exports.persist=o;
//# sourceMappingURL=mst-persist.cjs.production.min.js.map