mirror of
https://github.com/pezkuwichain/pezkuwi-extension.git
synced 2026-04-22 06:47:58 +00:00
1 line
1.6 KiB
JavaScript
1 line
1.6 KiB
JavaScript
(()=>{"use strict";const e="Pezkuwi"||0,n=`${e||"unknown"}-${"0x1333c81f446a44e0"||0}`,t=`${n}-content`,o=`${n}-page`,r=`${n}-content`;const s="undefined"!=typeof globalThis||"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:function(){return globalThis};const a=(i="chrome",c=s.browser,void 0===s[i]?c:s[i]);var i,c;function d(e,n,t){const o=a.runtime.connect({name:e});return o.onMessage.addListener(n),o.onDisconnect.addListener(()=>{console.log(`Disconnected from ${e}`),t()}),o}const u={wakeUpServiceWorker:async function(){return new Promise((e,n)=>{a.runtime.sendMessage({type:"wakeup"},t=>{a.runtime.lastError?n(new Error(a.runtime.lastError.message)):e(t)})})}};let l;const m={onPortDisconnectHandler:function(){l=void 0},onPortMessageHandler:function(e){window.postMessage({...e,origin:r},"*")},portName:t};window.addEventListener("message",({data:e,source:n})=>{n===window&&e.origin===o&&async function(e,n){const t=5,o=1e3;for(let r=0;r<t;r++)try{const t=await u.wakeUpServiceWorker();if("awake"===t?.status)return e||d(n.portName,n.onPortMessageHandler,n.onPortDisconnectHandler)}catch(e){console.error(`Attempt ${r+1} failed: ${e.message}`),await new Promise(e=>setTimeout(e,o))}throw new Error("Failed to wake up the service worker and setup the port after multiple attempts")}(l,m).then(n=>{n.postMessage(e),l=n}).catch(e=>console.error(`Failed to send message: ${e.message}`))});const w=document.createElement("script");w.src=a.runtime.getURL("page.js"),w.onload=()=>{w.parentNode&&w.parentNode.removeChild(w)},(document.head||document.documentElement).appendChild(w)})(); |