UNPKG

@egjs/persist

Version:

Provide cache interface to handle persisted data among history navigation.

3 lines (2 loc) 1.67 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e.eg=e.eg||{},e.eg.Persist=t())}(this,function(){"use strict";var e="undefined"!=typeof window&&window||{},p=(e.console,e.document,e.history,e.location),t=e.navigator,i=e.parseFloat,n=e.performance;try{e.localStorage,e.sessionStorage}catch(e){}var s,r,o,d,a,g,f,w,E,_,c=n&&n.navigation,x=(c&&c.TYPE_NAVIGATE,c&&c.TYPE_RELOAD,c&&c.TYPE_BACK_FORWARD,t?t.userAgent:""),y=(s=new RegExp("iPhone|iPad","i").test(x),r=new RegExp("Mac","i").test(x)&&!new RegExp("Chrome","i").test(x)&&new RegExp("Apple","i").test(x),o=new RegExp("Android ","i").test(x),d=new RegExp("wv; |inapp;","i").test(x),a=o?i(new RegExp("(Android)\\s([\\d_\\.]+|\\d_0)","i").exec(x)[2]):void 0,t?t.userAgent:"");g=new RegExp("iPhone|iPad","i").test(y),f=new RegExp("Mac","i").test(y)&&!new RegExp("Chrome","i").test(y)&&new RegExp("Apple","i").test(y),w=new RegExp("Android ","i").test(y),E=new RegExp("wv; |inapp;","i").test(y),_=w?i(new RegExp("(Android)\\s([\\d_\\.]+|\\d_0)","i").exec(y)[2]):void 0;return function(e){if(e&&e.Persist){var r="KEY___persist___",t=e.Persist.prototype,i=e.Persist.isNeeded,o=e.Persist.StorageManager;return e.Persist=function e(t,i){var n=(p?p.href.split("#")[0]:"")+"___persist___";if(this instanceof e)this.key=t;else{if(0===arguments.length)return o.getStateByKey(n,r);if(1!==arguments.length||"string"==typeof t)return 2===arguments.length&&o.setStateByKey(n,t,i),o.getStateByKey(n,t);var s=t;o.setStateByKey(n,r,s)}},e.Persist.isNeeded=i,e.Persist.prototype=t,e.Persist}}(e.eg)}); //# sourceMappingURL=persist-migrate.min.js.map