UNPKG

web-background

Version:
2 lines (1 loc) 1.49 kB
class e extends Worker{postMessage(e){super.postMessage(e)}addEventListener(e,t){super.addEventListener(e,t)}}class t extends e{constructor(e,t){super(e,t)}request(e){return new Promise((t=>{const n=({data:e})=>{t(e),this.removeEventListener("message",n)};this.postMessage(e),this.addEventListener("message",n)}))}}"function"==typeof SuppressedError&&SuppressedError;class n{static fromModule(e,t){var{module:n}=t,r=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(n[r[s]]=e[r[s]])}return n}(t,["module"]);const s=n.toString();console.log(null);const o=`\n self.addEventListener('message', async event => {\n const result = await (${s})(${n.length>1?"...event.data":"event.data"});\n \n self.postMessage(result);\n });\n `.trim(),a=new Blob([o]),l=URL.createObjectURL(a),u=new e(l,r),i=u.terminate;return u.terminate=()=>{i.call(u),URL.revokeObjectURL(l)},u}}const r=new FinalizationRegistry((e=>e.terminate()));function s(e){let s=null;return function o(...a){if("undefined"==typeof window)throw new Error("[web-background] You must use background in browser");return null==s&&(s=n.fromModule(t,{module:e}),r.register(o,s)),s.request.call(s,a.length>1?a:a[0])}}export{s as background};