UNPKG

data-synchronizer

Version:

A versatile library for transferring data across multi-page applications or single page applications.

2 lines (1 loc) 10.2 kB
"use strict";require("core-js/modules/es.object.set-prototype-of.js"),require("core-js/modules/es.object.assign.js"),require("core-js/modules/es.symbol.js"),require("core-js/modules/es.symbol.description.js"),require("core-js/modules/es.object.to-string.js"),require("core-js/modules/es.symbol.iterator.js"),require("core-js/modules/es.array.iterator.js"),require("core-js/modules/es.string.iterator.js"),require("core-js/modules/web.dom-collections.iterator.js"),require("core-js/modules/es.function.name.js"),require("core-js/modules/es.regexp.to-string.js"),require("core-js/modules/web.dom-collections.for-each.js"),require("core-js/modules/es.object.entries.js"),require("core-js/modules/es.object.keys.js"),require("core-js/modules/es.string.starts-with.js"),require("core-js/modules/es.array.map.js"),require("core-js/modules/es.array.from.js"),require("core-js/modules/es.set.js"),require("core-js/modules/es.map.js"),require("core-js/modules/es.array.slice.js"),require("core-js/modules/es.regexp.constructor.js"),require("core-js/modules/es.regexp.exec.js"),require("core-js/modules/es.string.replace.js"),require("core-js/modules/es.string.match.js"),require("core-js/modules/es.array.includes.js"),require("core-js/modules/es.string.includes.js"),require("core-js/modules/es.array.find.js");var e=function(n,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])},e(n,r)};function n(n,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function t(){this.constructor=n}e(n,r),n.prototype=null===r?Object.create(r):(t.prototype=r.prototype,new t)}var r=function(){return r=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var o in n=arguments[r])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},r.apply(this,arguments)};function t(e,n){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var t,o,s=r.call(e),i=[];try{for(;(void 0===n||n-- >0)&&!(t=s.next()).done;)i.push(t.value)}catch(e){o={error:e}}finally{try{t&&!t.done&&(r=s.return)&&r.call(s)}finally{if(o)throw o.error}}return i}"function"==typeof SuppressedError&&SuppressedError;var o="string",s="boolean",i="number",u="symbol",c="bigint",a="object",f=[a,function(e){var n="string"==typeof e?JSON.parse(e):e,r={};return Object.entries(n).forEach((function(e){var n=t(e,2),o=n[0],s=t(n[1],2),i=s[0],u=s[1];r[o]=E[i].from(u)})),r},function(e){var n={};return Object.entries(e).forEach((function(e){var r=t(e,2),o=r[0],s=r[1];n[o]=x(s)})),[a,n]}],l="null",p="function",g="array",d=[g,function(e){var n="string"==typeof e?JSON.parse(e):e,r=[];return n.forEach((function(e,n){var o=t(e,2),s=o[0],i=o[1];r[n]=E[s].from(i)})),r},function(e){var n=[];return e.forEach((function(e,r){n[r]=x(e)})),[g,n]}],y=["set",function(e){var n="string"==typeof e?JSON.parse(e):e,r=new Set;return n.forEach((function(e){var n=t(e,2),o=n[0],s=n[1],i=E[o].from(s);r.add(i)})),r},function(e){return["set",Array.from(e).map((function(e){return x(e)}))]}],h=["map",function(e){var n="string"==typeof e?JSON.parse(e):e,r=new Map;return n.forEach((function(e){var n=t(e,2),o=n[0],s=n[1],i=t(o,2),u=i[0],c=i[1],a=t(s,2),f=a[0],l=a[1];o=E[u].from(c),s=E[f].from(l),r.set(o,s)})),r},function(e){var n,r,o=e.entries(),s=[];try{for(var i=function(e){var n="function"==typeof Symbol&&Symbol.iterator,r=n&&e[n],t=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&t>=e.length&&(e=void 0),{value:e&&e[t++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(o),u=i.next();!u.done;u=i.next()){var c=t(u.value,2),a=c[0],f=c[1],l=x(a),p=x(f);s.push([l,p])}}catch(e){n={error:e}}finally{try{u&&!u.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}return["map",s]}],j="date",m="regexp",v="undefined",w="arrowFunction",S="asyncfunction",b="generatorfunction",E=[[o,function(e){return e},function(e){return[o,e]}],[s,function(e){return e},function(e){return[s,e]}],[i,function(e){return+e},function(e){return[i,e.toString()]}],[u,function(e){return Symbol.for(e)},function(e){return[u,e.description]}],[c,function(e){return BigInt(e)},function(e){return[c,e.toString()]}],f,[l,function(){return null},function(e){return[l,""+e]}],[p,function(e){var n=e.startsWith("function")?e:"function "+e;return new Function("return ".concat(n))()},function(e){return[p,e.toString()]}],d,y,h,[j,function(e){return new Date(+e)},function(e){return[j,""+e.getTime()]}],[m,function(e){var n=e.slice(1,e.lastIndexOf("/")),r=e.slice(e.lastIndexOf("/")+1);return new RegExp(n,r)},function(e){return[m,e.toString()]}],[v,function(){},function(){return[v,"undefined"]}],[w,function(e){return new Function("return ".concat(e))()},function(e){return[w,e.toString()]}],[S,function(e){return new Function("return ".concat(e))()},function(e){var n=e.toString();return n.startsWith("async function")||(n=n.replace("async","async function")),[S,n]}],[b,function(e){return new Function("return ".concat(e))()},function(e){var n=e.toString();return n.startsWith("*")&&(n="function ".concat(n)),[b,n.toString()]}]].reduce((function(e,n){var r,o=t(n,3),s=o[0],i=o[1],u=o[2];return Object.assign(e,((r={})[s]={from:i,to:u},r)),e}),{}),O="BroadcastChannel"in window,M="localStorage"in window,q=function(e){var n=JSON.parse(e),o=n.$payload;n.$id;var s=function(e,n){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(r[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(t=Object.getOwnPropertySymbols(e);o<t.length;o++)n.indexOf(t[o])<0&&Object.prototype.propertyIsEnumerable.call(e,t[o])&&(r[t[o]]=e[t[o]])}return r}(n,["$payload","$id"]),i=r(r({},s),{$payload:[]}),u=t(o,2),c=u[0],a=u[1];return i.$payload=E[c].from(a),i},x=function(e){var n,r=E[(n=e,void 0===n?"undefined":null===n?"null":n instanceof Function&&function(e){var n=(null==e?void 0:e.toString())||"";return!n.match(/{[\s\S]*}/)||n.replace(/{[\s\S]*}/,"").includes("=>")}(n)?"arrowFunction":n.constructor.name.toLowerCase())];return r&&(e=r.to(e)),e},$=function(e,n){var r=x(e);return{$origin:location.href,$payload:r,$target:"string"==typeof n?n:null==n?void 0:n.source,$id:B(16)}},C=function(e,n){return!n||new RegExp(n).test(e)},B=function(e){for(var n="";n.length<e;n+=Math.random().toString(36).substr(2));return n.substr(0,e)},I=function(e){return Array.from(new Set(e))},_=new Map,F=function(e,n){"string"==typeof e&&(e=[e]),(e=I(e)).forEach((function(e){var r=new BroadcastChannel(e);r.addEventListener("message",(function(e){try{var r=q(e.data);if(!C(location.href,r.$target))return;"function"==typeof n&&n(r)}catch(e){console.error(e)}}));var t=_.get(e)||[];t.push(r),_.set(e,t)}))},J=function(e,n,r){"string"==typeof e&&(e=[e]),e=I(e);var t=$(n,r);e.forEach((function(e){var n=new BroadcastChannel(e);n.postMessage(JSON.stringify(t));var r=_.get(e)||[];r.push(n),_.set(e,r)}))},N=function(e,n){"string"==typeof e&&(e=[e]),(e=I(e)).forEach((function(e){var r=new BroadcastChannel(e);r.addEventListener("messageerror",(function(e){"function"==typeof n&&n(e)}));var t=_.get(e)||[];t.push(r),_.set(e,t)}))},L=function(e){"string"==typeof e&&(e=[e]),(e=I(e)).forEach((function(n){var r=_.get(n)||[];if(!r.length)throw new Error("the channel named ".concat(e," isn't exist"));r.forEach((function(e){e.close()})),_.delete(n)}))},P=new Map,T=function(e,n){"string"==typeof e&&(e=[e]),e=I(e),window.addEventListener("storage",(function(r){var t=r.key;if(e.includes(t))try{var o=q(r.newValue);if(!C(location.href,o.$target))return;n(o)}catch(e){console.error(e)}}))},k=function(e,n,r){"string"==typeof e&&(e=[e]),e=I(e);var t=$(n,r),o=JSON.stringify(t);e.forEach((function(e){try{window.localStorage.setItem(e,o);var n=new StorageEvent("storage",{key:e,newValue:o});window.dispatchEvent(n)}catch(n){(P.get(e)||[]).forEach((function(e){e(n)}))}}))},A=function(e,n){"string"==typeof e&&(e=[e]),(e=I(e)).forEach((function(e){var r=P.get(e);r?r.push(n):r=[n],P.set(e,r)}))},D=function(e){var n=localStorage.setItem;"string"==typeof e&&(e=[e]),e=I(e),localStorage.setItem=function(r,t){e.includes(r)||n(r,t)};var r=localStorage.getItem;localStorage.getItem=function(n){if(!e.includes(n))return r(n)}},W=function(){},z=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return n(r,e),r.prototype.onMessage=function(e,n){T(e,n)},r.prototype.onSendMessageError=function(e,n){A(e,n)},r.prototype.sendMessage=function(e,n,r){k(e,n,r)},r.prototype.close=function(e){D(e)},r}(W),R=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return n(r,e),r.prototype.onMessage=function(e,n){F(e,n)},r.prototype.sendMessage=function(e,n,r){J(e,n,r)},r.prototype.onSendMessageError=function(e,n){N(e,n)},r.prototype.close=function(e){L(e)},r}(W),V=O||M,G=function(){function e(e){if(this.options={engine:"BroadcastChannel"},!V)throw new Error("The library doesn't support your browser.");Object.assign(this.options,e),this.initEngine()}return e.prototype.initEngine=function(){var e=this.options.engine,n={BroadcastChannel:R,LocalStorage:z};this.instance=new n[e](this.options)},e.prototype.onMessage=function(e,n){this.instance.onMessage(e,n)},e.prototype.sendMessage=function(e,n,r){this.instance.sendMessage(e,n,r)},e.prototype.onMessageError=function(e,n){this.instance.onSendMessageError(e,n)},e.prototype.close=function(e){this.instance.close(e)},e}(),H=O||M;exports.DataSynchronizer=G,exports.useDataSynchronizer=function(e){if(!H)throw new Error("the lib isn't support your browser.");e=Object.assign({engine:"BroadcastChannel"},e);var n=[{engine:"BroadcastChannel",support:O,onMessage:F,sendMessage:J,onSendMessageError:N,close:L},{engine:"LocalStorage",support:M,onMessage:T,sendMessage:k,onSendMessageError:A,close:D}].find((function(n){return n.engine===e.engine&&n.support}));return{onMessage:function(e,r){return n.onMessage(e,r)},sendMessage:function(e,r,t){return n.sendMessage(e,r,t)},onMessageError:function(e,r){return n.onSendMessageError(e,r)},close:function(e){return n.close(e)}}};