UNPKG

@jccr/omnilog

Version:
9 lines (7 loc) 1.62 kB
(()=>{(function(){if(globalThis.omnilog)return;let c=[],l=!1,g=["log","info","warn","error","debug"],d=/^\/(([A-z0-9\-\%]+\/)*[A-z0-9\-\%]+$)?(.*?):\d+:\d+$/;async function u(e){try{if(chrome.tabs){let n=await chrome.tabs.query({url:`chrome-extension://${chrome.runtime.id}/omnilog.html`});return n.length>0?(await chrome.tabs.sendMessage(n[0].id,e),!0):!1}else if(chrome.runtime.sendMessage)return await chrome.runtime.sendMessage(e),!0}catch{return!1}}async function i(e,n,s,...o){let t=o.map(a=>a===void 0?"$ol_type_undefined":typeof a=="bigint"?a.toString()+"$ol_type_bigint":a),r={namespace:"omnilog",type:e,args:t,source:n,href:location.href,when:Date.now(),stack:s?` ${s}`:new Error().stack};await u(r)||c.push(r)}function p(){l||(l=!0,c.forEach(e=>{u(e)}),c=[],l=!1)}async function h(){return await u({namespace:"omnilog:ping"})}(async function(){if(!await h()){let n=setInterval(async()=>{await h()&&(clearInterval(n),p())},100)}})();let f={};g.forEach(e=>{f[e]=globalThis.console[e]}),globalThis.omnilog={},g.forEach(e=>{globalThis.omnilog[e]=(...n)=>d.test(n.at(-1))?(i(e,n.pop(),null,...n),Function.prototype.bind.call(f[e],globalThis.console,...n)):(i(e,null,null,...n),f[e](...n),()=>{})}),addEventListener("error",e=>{let{message:n,filename:s,lineno:o,colno:t,error:r}=e,m=[n,...r?.stack?.split(` `).slice(1)||[]].join(` `);i("error",`${s}:${o}:${t}`,r?.stack,m)}),addEventListener("unhandledrejection",e=>{let{reason:{message:n,stack:s}}=e,o=s?.split("at ").at(-1),t=[`Uncaught (in promise) Error: ${n}`,...s?.split(` `).slice(1)].join(` `);i("error",o,s,t)})})();})(); //# sourceMappingURL=omnilog.js.map