UNPKG

@jccr/omnilog

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